diff --git a/操作文档/Docker常用命令.md b/操作文档/Docker常用命令.md index fae9e1d..69fa42e 100644 --- a/操作文档/Docker常用命令.md +++ b/操作文档/Docker常用命令.md @@ -19,24 +19,61 @@ docker container prune # 删除所有容器 docker rm -f $(docker ps -a -q) -# 打包 -docker build -t ms-admin . -# 运行容器【使用宿主机的hosts文件】 -docker run -d --name ms-admin -p 7011:7011 -v /etc/hosts:/etc/hosts ms-admin + # 进入容器 docker exec -it 58bb2dce0a92 /bin/bash -# 安装JDK1.8 -yum -y install java-1.8.0-openjdk.x86_64 + +排查步骤: +1、在IDEA中运行正常 +2、打包成jar,在windows中启动正常 # WINDOWS环境下运行jar包 "C:\Program Files\Java\jdk1.8.0_271\bin\java" -jar ms-admin.jar + +3、将jar拷贝到Linux中,启动正常 +# 安装JDK1.8 +yum -y install java-1.8.0-openjdk.x86_64 + # Linux环境下运行jar包 java -jar ms-admin.jar +4、至此,说明jar本身没有问题,否则Linux环境一样会报错,那么只有一种可能:Dockerfile有问题! +经仔细检查,发现 -Dspring.profiles.active=test 配置错误,指定了test文件,应该是Dev配置文件才对! #sed 替换 sed -i 's/-Dspring.profiles.active=test/-Dspring.profiles.active=dev/g' Dockerfile + +然后重新打包镜像: + +# 打包 +docker build -t ms-admin . + + +5、但事情还没有完!因为SpringBoot的配置中,有我使用hosts配置的DNS解析,比如:ms-excel 10.10.21.20 +在Linux宿主机中,我们可以采用 /etc/hosts 的编辑方式创建 ms-excel 10.10.14.77 +但这个配置信息不是直接在Docker容器中传递过去,需要加上启动时的参数: + +# 运行容器【使用宿主机的hosts文件】 +docker run -d --name ms-admin -p 7011:7011 -v /etc/hosts:/etc/hosts ms-admin +docker run -d --name ms-admin -p 7011:7011 -v /etc/hosts:/etc/hosts ms-admin +docker run -d --name ms-admin -p 7011:7011 -v /etc/hosts:/etc/hosts ms-admin +docker run -d --name ms-admin -p 7011:7011 -v /etc/hosts:/etc/hosts ms-admin +docker run -d --name ms-admin -p 7011:7011 -v /etc/hosts:/etc/hosts ms-admin +docker run -d --name ms-admin -p 7011:7011 -v /etc/hosts:/etc/hosts ms-admin +docker run -d --name ms-admin -p 7011:7011 -v /etc/hosts:/etc/hosts ms-admin +docker run -d --name ms-admin -p 7011:7011 -v /etc/hosts:/etc/hosts ms-admin +docker run -d --name ms-admin -p 7011:7011 -v /etc/hosts:/etc/hosts ms-admin +docker run -d --name ms-admin -p 7011:7011 -v /etc/hosts:/etc/hosts ms-admin +docker run -d --name ms-admin -p 7011:7011 -v /etc/hosts:/etc/hosts ms-admin +docker run -d --name ms-admin -p 7011:7011 -v /etc/hosts:/etc/hosts ms-admin +docker run -d --name ms-admin -p 7011:7011 -v /etc/hosts:/etc/hosts ms-admin +docker run -d --name ms-admin -p 7011:7011 -v /etc/hosts:/etc/hosts ms-admin +docker run -d --name ms-admin -p 7011:7011 -v /etc/hosts:/etc/hosts ms-admin +docker run -d --name ms-admin -p 7011:7011 -v /etc/hosts:/etc/hosts ms-admin +docker run -d --name ms-admin -p 7011:7011 -v /etc/hosts:/etc/hosts ms-admin +docker run -d --name ms-admin -p 7011:7011 -v /etc/hosts:/etc/hosts ms-admin +