Centos7.9虚拟机采用Docker容器形式部署jar包,mysql

Linux下安装docker:

yum install docker

启动docker:

systemctrl start docker

docker挂载jar包:

docker run -d --restart=always --name novademo \
-v /app/demo.jar:/usr/demo.jar \
-v /app/application.yml:/usr/application.yml \
-v /app/tomcat/logs:/logs \
--privileged=true \
-p 8080:8080 \
java:8 /usr/bin/java -jar /usr/demo.jar \
--spring.config.location=/usr/application.yml

参数解析:

-d:后台运行
--restart=always:docker启动时自启动容器
--name novademo :容器名称
-v /app/demo.jar:/usr/demo.jar:将容器中/usr/demo.jar文件挂载到主机/app/demo.jar文件
-v /app/tomcat/logs:/logs:将容器日志/logs,挂载到主机/app/tomcat/logs
--privileged=true:使容器获得root权限,否则可能报permission错误
-p 8080:8080:将容器的8080端口映射到主机的8080端口

docker挂载mysql:

docker run -d --restart=always --name mysql \
-v /app/mysql/data:/var/lib/mysql \
-v /app/mysql/conf:/etc/mysql/conf.d \
-v /app/mysql/log:/var/log/mysql \
--privileged=true \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=li15034395319 \
mysql:5.7 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_general_ci

参数解析

-d:后台运行
--restart=always:docker启动时自启动容器
--name novademo :容器名称
-v /app/mysql/data:/var/lib/mysql:将数据文件夹挂载到主机
-v /app/mysql/conf:/etc/mysql/conf.d:将配置文件夹挂在到主机,可以在宿主机放一份自定义 my.cnf文件,那么容器就会按自定义配置启动
-v /app/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
-p 3306:3306:将容器的3306端口映射到主机的3306端口
-e TZ=Asia/Shanghai:修改 docker 容器时区
-e MYSQL_ROOT_PASSWORD=li15034395319 :初始化root用户的密码
--character-set-server=utf8mb4:设置字符集
--collation-server=utf8mb4_general_ci:排序方式

传输sql文件:

docker cp /app/novademo.sql mysql:/

执行sql文件:

source /novademo.sql;

容器启动后查看启动日志:

docker logs "容器id"

查看容器状态:

docker ps -a

如果容器的status一直为restarting,则可能是挂载-v出现了问题。具体问题需要查看启动日志。

进入容器

docker exec -it mysql /bin/bash

停止容器

docker stop "容器id"

删除容器

docker rm "容器id"

删除image

docker rmi "imageID"

踩坑记录:
docker之间无法访问,主要表现为挂载的jar包启动时,无法访问mysql数据库(开放3306)。启动后,无法被访问(开放8080)。
原因分析:Linux防火墙需要开放端口。

firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值