#### 查看容器 ```shell docker ps -a ``` #### 通过名称转为$ID$ ```shell docker ps -aqf "name=gw-charge" ``` #### 删除容器 ```shell docker rm -f 332eba979772 ``` #### 查看镜像 ```shell docker images ``` #### 删除镜像 ```shell docker rmi -f ms-admin ``` #### 删除标识为的镜像 ```shell docker rmi 474ac8287260 a54e8f70bb55 92fe91e81b86 ``` #### 删除已停止的容器 ```shell docker container prune ``` #### 删除所有容器 ```shell docker rm -f $(docker ps -a -q) ``` #### 进入容器 ```shell docker exec -it 58bb2dce0a92 /bin/bash ``` #### 排查步骤 1、在IDEA中运行正常 2、打包成jar,在windows中启动正常 ##### WINDOWS环境下运行jar包 ```cmd "C:\Program Files\Java\jdk1.8.0_271\bin\java" -jar ms-admin.jar ``` 3、将jar拷贝到Linux中,启动正常 ##### 安装JDK1.8 ```shell yum -y install java-1.8.0-openjdk.x86_64 ``` ##### Linux环境下运行jar包 ```shell java -jar ms-admin.jar ``` 4、至此,说明jar本身没有问题,否则Linux环境一样会报错,那么只有一种可能:Dockerfile有问题! 经仔细检查,发现 -Dspring.profiles.active=test 配置错误,指定了test文件,应该是Dev配置文件才对! #sed 替换 ```shell sed -i 's/-Dspring.profiles.active=test/-Dspring.profiles.active=dev/g' Dockerfile ``` 然后重新打包镜像: ##### 打包 ```shell 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$文件 ``` [root@localhost ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 # 以下是微服务的服务器配置 172.17.0.1 ms-saas-mgr 172.17.0.1 ms-user 172.17.0.1 ms-finance 172.17.0.1 ms-wallet 172.17.0.1 ms-order 172.17.0.1 ms-admin 172.17.0.1 ms-excel 172.17.0.1 ms-station 172.17.0.1 ms-protocol-shenghong 172.17.0.1 ms-distribute 172.17.0.1 ms-monitor 172.17.0.1 ms-openapi 172.17.0.1 ms-task 172.17.0.1 ms-websocket-ocpp 172.17.0.1 ms-protocol [root@localhost ~]# ``` #### 运行容器【使用宿主机的$hosts$文件】 ```shell docker run -d --name gw-saas-mgr -p 7003:7003 -v /etc/hosts:/etc/hosts gw-saas-mgr docker run -d --name ms-admin -p 7011:7011 -v /etc/hosts:/etc/hosts ms-admin docker run -d --name ms-distribute -p 7012:7012 -v /etc/hosts:/etc/hosts ms-distribute docker run -d --name ms-finance -p 7014:7014 -v /etc/hosts:/etc/hosts ms-finance docker run -d --name ms-station -p 7020:7020 -v /etc/hosts:/etc/hosts ms-station docker run -d --name ms-task -p 7021:7021 -v /etc/hosts:/etc/hosts ms-task docker run -d --name ms-user -p 7022:7022 -v /etc/hosts:/etc/hosts ms-user docker run -d --name ms-websocket-ocpp -p 7025:7025 -v /etc/hosts:/etc/hosts ms-websocket-ocpp docker run -d --name gw-charge -p 7001:7001 -v /etc/hosts:/etc/hosts gw-charge docker run -d --name ms-openapi -p 7016:7016 -v /etc/hosts:/etc/hosts ms-openapi docker run -d --name ms-order -p 7017:7017 -v /etc/hosts:/etc/hosts ms-order docker run -d --name ms-protocol -p 7024:7024 -v /etc/hosts:/etc/hosts ms-protocol docker run -d --name ms-saas-mgr -p 7026:7026 -v /etc/hosts:/etc/hosts ms-saas-mgr docker run -d --name ms-manager-sass-ui -p 80:80 -v /etc/hosts:/etc/hosts ms-manager-sass-ui ``` #### 安装 $Ping$ ```shell apt-get update apt-get install iputils-ping -y ``` #### 查看宿主机$IP$ ```shell [root@localhost ~]# ifconfig docker0: flags=4163 mtu 1500 inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255 inet6 fe80::42:7ff:fe80:54b1 prefixlen 64 scopeid 0x20 ether 02:42:07:80:54:b1 txqueuelen 0 (Ethernet) RX packets 4206426 bytes 2354824710 (2.1 GiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 3442306 bytes 746571948 (711.9 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ens192: flags=4163 mtu 1500 inet 10.10.14.77 netmask 255.255.255.0 broadcast 10.10.14.255 inet6 fe80::20c:29ff:fe54:1f62 prefixlen 64 scopeid 0x20 ether 00:0c:29:54:1f:62 txqueuelen 1000 (Ethernet) RX packets 6180298 bytes 2946646464 (2.7 GiB) RX errors 0 dropped 84 overruns 0 frame 0 TX packets 4710131 bytes 2571579064 (2.3 GiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 # 查看端口 curl 172.17.0.1:7026 ``` #### 查看$Docker$的$IP$ ```shell docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 4d2b1da162ca # 返回值 172.17.0.3 ``` #### 替换$Docker$内部的更新源 ``` cat </etc/apt/sources.list deb http://mirrors.ustc.edu.cn/debian stable main contrib non-free deb http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free EOF ``` ``` #更新apt apt update #安装vim命令 apt install vim # 网络工具 apt install iputils-ping net-tools iproute2 -y ``` #### $Docker$镜像源 ``` DockerHub 镜像仓库 镜像加地址 DockerHub 镜像加速代理 https://docker.anyhub.us.kg https://docker.chenby.cn https://dockerhub.jobcher.com 镜像使用说明 https://dockerhub.icu Docker镜像加速站 https://docker.ckyl.me 镜像使用说明 https://docker.awsl9527.cn 镜像使用说明 https://docker.hpcloud.cloud DaoCloud 镜像站 https://docker.m.daocloud.io AtomHub 可信镜像仓库平台 (只包含基础镜像,共336个) https://atomhub.openatom.cn ``` #### 安装 $Docker$ $UI$ ```shell docker pull docker.anyhub.us.kg/uifd/ui-for-docker ``` #### 运行$Docker$ $UI$ ``` docker run -it -d --name docker-web -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock docker.io/uifd/ui-for-docker ```