端口不是所有 Docker 网络都通用的吗?

Bil*_*ean 3 docker docker-container

我创建了两个docker网络

  1. 中国网络

     docker network create --subnet=172.19.0.0/16 chnetwork
    
    Run Code Online (Sandbox Code Playgroud)
  2. 内部网络

     docker network  create --internal --subnet 10.1.1.0/24 internal-network
    
    Run Code Online (Sandbox Code Playgroud)

在创建 docker 容器时我使用chnetwork

docker run -it -d --name containerone -h www.cone.net -v /var/www/html -p 3006:80 --net chnetwork --ip 172.19.0.40 --privileged magento
Run Code Online (Sandbox Code Playgroud)

后来我更改为内部网络并断开容器与chnetwork的连接

docker network connect internal-network containerone
docker network disconnect chnetwork containerone
Run Code Online (Sandbox Code Playgroud)

现在的问题是docker ps命令不显示该容器的端口,我的意思是端口在内部网络中无法访问。

当我将网络更改为chnetwork时,只有docker ps显示端口。我需要做什么才能在所有 Docker 网络中访问端口?

BMi*_*tch 5

这似乎是内部网络的行为。由于连接到容器的唯一网络是不允许外部流量的内部网络,因此容器在设计上是隔离的。要发布端口,您需要将容器连接到非内部桥接网络。一旦您将非内部桥接网络连接到容器,您就会看到已发布的端口重新出现。