寻寻觅觅

docker compose环境部署

2021-07-16 · 3 min read

0.重要:请确定机器配置,比如硬盘内存和处理器信息

1.安装mysql,设置开机自启动,修改密码,设置外网可以访问
更改MySQL配置:

服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
lower_case_table_names=1
default-storage-engine=INNODB
collation-server=utf8_general_ci
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
default-time_zone = '+8:00'
[client]
default-character-set=utf8

2.安装docker,确定可以正常运行,然后安装docker-compose

此时可以查看防火墙是否关闭
systemctl stop firewalld.service 关闭
systemctl start firewalld.service 开启
并且启用ipv4转发
修改/etc/sysctl.conf,增加net.ipv4.ip_forward = 1,保存并退出.执行命令启用更改:sysctl -p /etc/sysctl.conf

3.编写docker-compose配置文件,可参考docker-compose.yml

4.在本机上docker pull所需的镜像,使用 docker save -o xxx.tar 镜像id, -o 表示重定向到哪个文件,我们是把镜像从重定向到xxx.tar文件, 来把镜像打成一个压缩包,来方便我们把镜像转移到服务器上

5.如果对方服务器使用跳板机访问,可以使用winscp使用隧道,使用ftp协议访问文件系统,如果是xshell,也可以使用rz来上传文件

6.把镜像文件上传到服务器之后,使用 docker load -i xxx.tar 把镜像导入服务器的docker仓库中,
这时候使用docker images查看一下镜像已经正常导入

7.mysql中创建好所需的数据库,使用navicat导入数据,如果对方服务器使用跳板机访问,配置navicat使用隧道访问;
如果均不能使用,上传sql脚本到服务器,使用mysql原生命令导入即可.

8.前端镜像已经包含了nginx,所以不需要再引入nginx镜像

9.使用docker-compose up -d 启动项目所有容器,使用docker compose down 关闭所有容器并删除,
然后使用 docker-compose ps [-a] 来查看相关容器是否均已经启动

10.docker常用命令:
docker load --input xxx.tar 上传镜像包到容器
docker-compose down 停止当前容器并删除
docker-compose up -d 创建容器并后台启动
docker-compose ps [-a] 查看容器启动状态
docker logs 容器名 -f 查看容器启动日志
docker exec -it 容器名 [bash|ss|sh|/bin/bash] 进入容器交互( | 表示有可能是其中的一个)

11.更新:

将需要更新的镜像包先load到容器,查看容器的tag值,比如要更新的镜像为
docker.xxx.com.cn/library/aaa-server:v2021-2,
如果docker-compose文件里是
docker.xxx.com.cn/library/aaa-server:v2021-1,那么就把修改docker-compose里的修改为docker.xxx.com.cn/library/aaa-server:v2021-2即可.
然后 docker-compose down关闭并删除容器, 再使用 docker-compose up -d 创建并启动容器即可完成更新