无法从位于同一局域网中的另一主机ping通泊坞窗容器

我有两个主机,在同一局域网中,都运行docker:

  • 主机A:172.16.0.113
  • 主机B:172.16.0.114

我可以从主机B ping主机A.但是,我不能从主机B ping主机A上的docker容器。

我在docker的默认networking(网桥)中创build了一个运行ubuntu的docker容器。 默认的docker0的IP地址是172.17.0.1。 而主机(172.16.0.113)中的容器(ubuntu)的IP地址是172.17.0.2。 我用的命令是这里:

sudo docker run --name container01 -it -p 8080:80 ubuntu /bin/bash 

我可以从它的主机,主机A ping container01; 但是我不能ping另一台主机B的container01。注意我已经暴露了container01的端口。

我想当我从主机B ping container01时,数据包被发送到该主机中的一个容器。 但是我想知道如何从主机B连接到主机A的container01。

也许试试吧

sudo docker run --name container01 -it --network=host -p 8080:80 ubuntu /bin/bash

Docker容器运行在通常不能从其他主机访问的私有地址上。 如果你有多个docker主机,那么你应该设置覆盖networking来将容器放置在他们可以互相访问的同一个专用networking上; 这可以通过swarm模式自动完成。

为了从Docker外部到达容器,您需要发布一个端口。 使用docker run-p 8080:80将主机端口8080映射到容器端口80(可以调整这些端口号)。 用docker-compose.yml,有一个类似的ports部分。