无法从位于同一局域网中的另一主机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
部分。