记录一次docker部署前后端分离项目(tomcat+nginx),导入导出镜像

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(若有则忽略)并后台运行

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值