二、Linux安装docker,docker安装 mysql、redis、nginx及docer配置多个端口

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


[其他教程](https://www.cnblogs.com/crazymakercircle/p/11985983.html)

一、安装msyql

1.安装msyql

搜索 mysql
启动虚拟机 连接虚拟机 vagrant ssh ,查看当前账号 whoami
下载镜像文件:sudo docker pull mysql:5.7;
查找镜像 images ID :sudo docker images
登录管理员账号 su root 密码 vagrant
创建实例并启动:

docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
命令说明:
-p 3306:3306:将容器的3306端口映射到主机的3306端口
-v /mydata/mysql/log:/var/log/mysql\       将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql\
-v /mydata/mysql/conf:/etc/mysql\    将配置文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码
-d: 后台运行容器,并返回容器ID

查看运行的容器:docker ps

2.测试连接本机的mysql

在这里插入图片描述
注意是 192.168.56.10

3.改字符集

进入容器 : docker  exec  -it  mysql /bin/bash  ,

whereis  mysql 
exit
cd /mydata/
ls
cd mysql/
ls
cd conf
ls
vi my.cnf  进入 敲i  ,复制粘贴
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

按ESC ,敲:wq 退出
重启Mysql : docker restart mysql
进入容器 : docker  exec  -it  mysql /bin/bash 
cd /etc/mysql/
查看文件 cat my.cnf 

4.改mysql密码

进入容器 : docker exec -it mysql /bin/bash
登录MySQL :mysql -uroot -p
修改MySQL密码:SET PASSWORD FOR ‘root’ = PASSWORD(‘密码’);
flush privileges;

4.自动启动

docker update mysql --restart=always

5.docker常用命令

//重启实例
docker restart ebc54f9f98e2(容器 ID)/ (容器名字)

//停止实例
docker stop ebc54f9f98e2(容器 ID)/ (容器名字)

//移除一个容器
docker rm ba51fc8d04e1(CONTAINER ID)
 
//删除docker上的镜像 
docker rmi 7bb2586065cd(IMAGE ID)

1. docker search mysql 这条命令表示查询mysql的所有镜像信息

2. docker pull mysql 表示从官方下载默认版本的mysql,latest

docker pull mysql:5.5 表示下载mysql版本5.5的

3. docker images 查看当前本地的所有镜像

4. docker rmi image-id 删除制定镜像,image-id是每个镜像独有的id

5. docker run ...... 根据镜像启动容器

6. docker ps 查看运行中的容器

7. docker ps -a 查看所有容器

8. docker start 容器id 启动容器

9. docker stop 容器id 停止容器

10. docker rm 容器id 删除容器

11. service firewalld status 查看防火墙状态

12. service firewalld stop 关闭防火墙

改root权限

二、安装redis

1.安装redis

在https://hub.docker.com 搜索 redis
启动虚拟机 连接虚拟机 vagrant ssh ,查看当前账号 whoami
登录管理员账号 su root 密码 vagrant
下载镜像文件: docker pull redis
创建实例并启动:

mkdir -p /mydata/redis/conf
cd /mydata/
ls
cd redis 
ls
cd conf/
ls
touch redis.conf
docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf

检查:docker ps
使用redis镜像执行 redis-cli命令连接,设置持久化:
docker exec -it redis redis-cli
exit
pwd
ls
vi redis.conf
输入 i 进入插入模式
appendonly yes
按Esc  :wq   保存
重启redis: docker restart redis  , 
docker ps  ,   docker exec -it redis redis-cli  , set  aa bb  ,  get aa  bb
exit  ,   
docker restart redis  , 
docker ps  ,  
docker exec -it redis redis-cli  , 
get aa

自动启动 docker update redis --restart=always

修改redis密码
查看redis密码
config get requirepass
修改密码:
在配置文件/mydata/redis/conf/redis.conf中加入:

requirepass 你的密码

重启redis 输入 docker restart redis
登录后需要验证:
redis 127.0.0.1:6379> auth 你的密码

2.安装桌面端

(1)安装 redis-desktop-manager-0.8.8.384.exe (安装软件已有)
安装目录:D:\javaruanjian01\samll\redis

在这里插入图片描述

三、安装nginx

来到 mydata 文件夹
创建nginx文件夹,将nginx的东西放到nginx文件夹。
mkdir nginx
ls
docker run -p 80:80 --name nginx -d nginx:1.10
docker ps
将容器内的配置文件拷贝到当前目录:docker container cp nginx:/etc/nginx .
ls
cd nginx/
查看复制出来的文件
在这里插入图片描述
复制出来就可以把nginx停掉了

docker stop nginx
docker rm nginx
ls
cd …/
ls
给nginx文件夹改名,改成conf:mv nignx conf
ls
在这里插入图片描述
重新创建nginx文件夹
mkdir nginx
把conf文件夹移动到nginx文件夹里:mv conf nginx/
ls
cd nginx/
ls

docker run -p 80:80 --name nginx
-v /mydata/nginx/html:/usr/share/nginx/html
-v /mydata/nginx/logs:/var/log/nginx
-v /mydata/nginx/conf:/etc/nginx
-d nginx:1.10

ls
docker ps
pwd
ls
cd html/
ls
vi index.html
输入i

GuliMall

退出::wq

测试:http://192.168.56.10/

开机自启动
docker update nginx --restart=always

ngxin及docker配置多个端口

配置文件的坑:
要将前端文件放在映射的/mydata/nginx/html 文件夹下
在这里插入图片描述
然后改/mydata/nginx/conf 的nginx.conf 配置文件
可将include改为映射文件地址,也可不改。
在这里插入图片描述
root 这里改为映射前的nginx的路径:/usr/share/nginx/html,因为这个路径 映射到了 /mydata/nginx/html
在这里插入图片描述

参考链接

下面的先不看了

1.下载nginx镜像

在https://hub.docker.com 搜索 redis
启动虚拟机 连接虚拟机 vagrant ssh ,查看当前账号 whoami
登录管理员账号 su root 密码 vagrant
下载镜像文件:
| 命令 描述

命令描述
docker pull nginx:xxx下载指定版本的Nginx镜像 (xxx指具体版本号)
docker pull nginx下载最新版Nginx镜像 (其实此命令就等同于 : docker pull nginx:latest docker pull nginx:1.10 )

2.创建Nginx配置文件

启动前需要先创建Nginx外部挂载的配置文件( /home/nginx/conf/nginx.conf)
之所以要先创建 , 是因为Nginx本身容器只存在/etc/nginx 目录 , 本身就不创建 nginx.conf 文件
当服务器和容器都不存在 nginx.conf 文件时, 执行启动命令的时候 docker会将nginx.conf 作为目录创建 , 这并不是我们想要的结果 。
# 创建挂载目录
mkdir -p /mydata/nginx/conf
mkdir -p /mydata/nginx/log
mkdir -p /mydata/nginx/html
容器中的nginx.conf文件和conf.d文件夹复制到宿主机
# 生成容器
docker run --name nginx -p 80:80 -d nginx
# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /mydata/nginx/conf/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /mydata/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /mydata/nginx/html 
# 将容器中的日志文件夹复制到宿主机
docker cp nginx:/var/log/nginx /mydata/nginx/log

3.创建Nginx容器并运行

Docker 创建Nginx容器
# 直接执行docker rm nginx或者以容器id方式关闭容器
# 找到nginx对应的容器id
docker ps -a
# 关闭该容器
docker stop nginx
# 删除该容器
docker rm nginx
# 删除正在运行的nginx容器
docker rm -f nginx
docker run -p 80:80 --name nginx \
-v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /mydata/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /mydata/nginx/log:/var/log/nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-d nginx:latest

docker run --name nginx -p 80:80
-v /home/docker-nginx/nginx.conf:/etc/nginx/nginx.conf
-v /home/docker-nginx/log:/var/log/nginx
-v /home/docker-nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf
-d nginx

命令描述
–name nginx启动容器的名字
-d后台运行
-p 9002:80将容器的 9002(后面那个) 端口映射到主机的 80(前面那个) 端口
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf挂载nginx.conf配置文件
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d挂载nginx配置文件
-v /home/nginx/log:/var/log/nginx挂载nginx日志文件
-v /home/nginx/html:/usr/share/nginx/html挂载nginx内容
nginx:latest本地运行的版本
\shell 命令换行

5、结果检测
curl 127.0.0.1:80
6、自启动
docker update nginx --restart=always

7.删除文件 rm - rf /文件目录
rm -rf /home/wd/1

4.nginx加端口

参考

4.1 、nginx容器端口映射配置

在上述操作步骤中,我只将80端口与宿主机进行了映射,也就意味着只能使用80端口访问nginx,如果要使用nginx启动多个前端项目的时候,则需要将容器里的多个端口映射到宿主机。有两种方式可以实现。
方式一:启动容器时挂载多个端口

docker run \
-p 80:80 \
-p 8080:8080 \
-p 8081:8081 \
-p 8082:8082 \
--name nginx \
--restart=always \
-v /usr/local/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/docker/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /usr/local/docker/nginx/log:/var/log/nginx \
-v /usr/local/docker/nginx/html:/usr/share/nginx/html \
-d nginx:latest

此方式需要一开始就指定好要映射的端口,后面如有增减需要重新运行容器,重新指定,不够灵活

方式二:修改配置文件
1、查看容器ID

# 获取容器/镜像的元数据
docker inspect nginx

输出

[
    {
        "Id": "135254e3429d1e75aa68569137c753b789416256f2ced52b4c5a85ec3849db87", # hash_of_the_container
        "Created": "2020-08-21T09:41:36.597993005Z",
        "Path": "/docker-entrypoint.sh",
        "Args": [
            "nginx",
            "-g",
            "daemon off;"
        ],
        "State": {
...

2、修改之前一定要先停掉容器,否则自动还原

docker stop nginx

3、进入到容器目录(用前面获取的容器id),修改配置文件hostconfig.json

cd /var/lib/docker/containers/135254e3429d1e75aa68569137c753b789416256f2ced52b4c5a85ec3849db87 # container id
vim hostconfig.json

找到端口绑定,添加端口

... # 略
"PortBindings": {
    "80/tcp": [
        {
            "HostIp": "",
            "HostPort": "80"
        }
    ],
    "8080/tcp": [
        {
            "HostIp": "",
            "HostPort": "8080"
        }
    ],
    "8189/tcp": [
        {
            "HostIp": "",
            "HostPort": "8189"
        }
    ]
},
... # 略

修改config.v2.json
同路径下打开config.v2.json,修改:ExposedPorts

"ExposedPorts": {
    "80/tcp": {},
    "8080/tcp": {},
    "8189/tcp": {}
},
... # 略

很多文章中提到还要修改Ports,实际上是不需要的,只有在你没有stop容器时,Ports才会有值,如果关闭了容器,就是null。当然如果你修改了也无所谓,因为重启容器后,就会被刷新。

4、保存、退出、重启容器

# 重启docker服务
sudo systemctl restart docker.service 
# 启动容器
docker start nginx 

至此,端口添加成功,可以配置端口进行访问啦!!!

docker下mysql备份

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以按照以下步骤在Docker中部署和安装jdk1.8、Redis 3.2、NginxMySQL 5.7: 1. 安装Docker:根据你的操作系统,安装适合的Docker版本。你可以在Docker官方网站上找到相关的安装指南。 2. 拉取镜像:打开终端或命令提示符,执行以下命令拉取所需的镜像: - JDK 1.8:`docker pull openjdk:8-jdk` - Redis 3.2:`docker pull redis:3.2` - Nginx:`docker pull nginx` - MySQL 5.7:`docker pull mysql:5.7` 3. 创建容器: - JDK 1.8:执行以下命令创建一个名为`jdk-container`的JDK容器,并将宿主机的某个目录挂载到容器中的`/app`目录下: ``` docker run -d --name jdk-container -v /host/path:/app openjdk:8-jdk ``` - Redis 3.2:执行以下命令创建一个名为`redis-container`的Redis容器,并将容器的6379端口映射到宿主机的6379端口: ``` docker run -d --name redis-container -p 6379:6379 redis:3.2 ``` - Nginx:执行以下命令创建一个名为`nginx-container`的Nginx容器,并将容器的80端口映射到宿主机的80端口: ``` docker run -d --name nginx-container -p 80:80 nginx ``` - MySQL 5.7:执行以下命令创建一个名为`mysql-container`的MySQL容器,并将容器的3306端口映射到宿主机的3306端口。同时,设置MySQL的root用户密码为`your_password`: ``` docker run -d --name mysql-container -p 3306:3306 -e MYSQL_ROOT_PASSWORD=your_password mysql:5.7 ``` 4. 进入容器: - JDK 1.8:执行以下命令进入`jdk-container`容器: ``` docker exec -it jdk-container bash ``` - Redis 3.2:执行以下命令进入`redis-container`容器: ``` docker exec -it redis-container bash ``` - Nginx:执行以下命令进入`nginx-container`容器: ``` docker exec -it nginx-container bash ``` - MySQL 5.7:执行以下命令进入`mysql-container`容器: ``` docker exec -it mysql-container bash ``` 在进入容器后,你可以执行相应的命令来配置和使用各个软件。 这些步骤可以帮助你在Docker中部署安装JDK 1.8、Redis 3.2、NginxMySQL 5.7。请确保你已经安装Docker,并具有适当的权限来执行相关的操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值