1. 设置docker镜像源,安装docker ce
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
yum makecache fast
yum install -y docker-ce
2. 启动docker命令
systemctl start docker
3. 在文件夹内新建一个daemon.json文件
mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://akchsmlh.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker
4. 允许docker开机自启
systemctl enable docker.service
5. 查看docker镜像命令(镜像相当于应用程序)
docker images
6. 查看运行的docker容器(容器相当于进程)
docker ps
7. 若无运行中的容器,则需要一一运行
7.1. 运行java8环境
docker pull java:8
docker run --restart=always -d -it --name java8 java:8
7.2. 运行mysql环境
docker pull mysql:5.7.21
docker run --restart=always --name mysql5.7.21 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.21
运行完之后需要导入表结构及数据,可7.2.1借助可视化工具navicat或7.2.2命令导入
7.2.1 navicat连接宿主机,直接导入脚本
7.2.2 复制脚本到容器里,先将脚本拷贝到宿主机
docker cp /home/xxx.sql mysql5.7.21:xxx.sql
进入mysql容器执行脚本
docker exec -it mysql5.7.21 bash
(创建数据库导入文件步骤省略)
7.3. 运行tomcat环境
docker pull tomcat:9.0
docker run -d -p 8090:8080 --restart=always --name tomcat tomcat:9.0
7.4. 运行nginx环境,我这里要创建的是三个nginx的容器对应不同的端口
7.4.1 创建宿主机目录结构,可直接复制文件夹“home下结构”上传到宿主机/home文件夹下(创建该结构主要用于方便更新及检查日志,可根据下方执行命令来创建对应的文件夹)
7.4.2 执行命令运行三个nginx
docker run -p 802:80 --name wms_nginx -v /home/wms_nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/wms_nginx/conf/conf.d:/etc/nginx/conf.d -v /home/wms_nginx/log:/var/log/nginx -v /home/wms_nginx/html:/usr/share/nginx/html -d nginx:latest
docker run -p 801:80 --name mes_nginx -v /home/mes_nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/mes_nginx/conf/conf.d:/etc/nginx/conf.d -v /home/mes_nginx/log:/var/log/nginx -v /home/mes_nginx/html:/usr/share/nginx/html -d nginx:latest
docker run -p 803:80 --name qms_nginx -v /home/qms_nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/qms_nginx/conf/conf.d:/etc/nginx/conf.d -v /home/qms_nginx/log:/var/log/nginx -v /home/qms_nginx/html:/usr/share/nginx/html -d nginx:latest
7.5. 拉取kkfileview(若有则忽略)并后台运行
docker pull keking/kkfileview:4.1.0
docker run --restart=always -it -p 8012:8012 keking/kkfileview:4.1.0
8. 每次更新前端只需替换mes_nginx、 qms_nginx、 wms_nginx 目录下html文件夹下的文件;
更新后端需要先将war包放置在/home路径下,执行以下命令(此命令是将宿主机/home下的ROOT.war文件上传到名为tomcat的容器中的/usr/local/tomcat/webapps/目录下,再重启tomcat容器进行重部署):
docker cp /home/ROOT.war tomcat:/usr/local/tomcat/webapps
docker restart tomcat
9. 导入和导出docker
9.1. 查看本地docker版本,待导入的宿主机的docker版本需匹配
重复上面1~4步骤安装并配置docker
9.2. 导出源docker所有镜像(此过程可能会停顿一下,大概3个多G)
docker save $(docker images --format '{{.Repository}}:{{.Tag}}') -o allinone.tar #allinone.tar为名称,可自定义
9.3. 导入allinone.tar文件
9.4. 查看镜像及容器
发现并没有正在运行的容器,需要重复上面步骤7进行运行
10. 项目地址:
MES: 宿主机ip:801
WMS: 宿主机ip:802
QMS: 宿主机ip:803