赞
踩
yum install docker
systemctrl start docker
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 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:排序方式
docker cp /app/novademo.sql mysql:/
source /novademo.sql;
docker logs "容器id"
docker ps -a
如果容器的status一直为restarting,则可能是挂载-v
出现了问题。具体问题需要查看启动日志。
docker exec -it mysql /bin/bash
docker stop "容器id"
docker rm "容器id"
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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。