为什么docker 容器有的没有PORTS
容器的 PORTS
列没有显示端口映射信息,而 sonatype/nexus3:3.77.1
容器有显示,可能是由以下几个原因导致的:
1. --network=host
参数的使用
正如前面提到的,当你使用 --network=host
参数运行容器时,容器会直接使用宿主机的网络栈,这种情况下 Docker 不会进行端口映射,因此在 docker ps
输出中 PORTS
列就不会显示映射信息。
如果你使用了类似如下带有 --network=host
的命令启动容器:
docker run -d \
--name rr-auth \
-p 8081:8100 \
-m 512M \
--privileged=true \
--restart=always \
--network=host \
-v /home/framework/auth/log:/xh/log \
-e "spring.profiles.active=test" \
rr/auth
--network=host
会使 -p
参数失效,若要实现端口映射,应去掉 --network=host
,使用如下命令启动容器:
docker run -d \
--name rr-auth \
-p 8081:8100 \
-m 512M \
--privileged=true \
--restart=always \
-v /home/framework/auth/log:/xh/log \
-e "spring.profiles.active=test" \
rr/auth