4

我真的很困惑这个问题。我在我们的内部网络中有两台计算机。两台计算机都可以 ping 内部服务器。两台计算机都有相同的 docker 版本。docker run -it --rm --name cont1 --net=host java:8我在两台计算机上使用命令运行简单的 docker 容器 。然后 ssh 进入容器并尝试 ping 内部服务器。其中一个容器可以 ping 内部服务器,但另一个容器无法访问任何内部服务器。

怎么可能?你对此有什么想法吗?

谢谢

4

1 回答 1

-3

将容器连接到同一网络中的其他系统是通过端口映射完成的。为此,您需要使用端口映射运行 docker 容器。像 - docker run -it --rm --name cont1 -p host_ip:host_port:container_port java:8

例如, docker run -it --rm --name cont1 -p 192.168.134.122:1234:1500 java:8

注意:docker run 中给出的容器端口在 Dockerfile 中公开

现在,例如容器 ip 将是 - 运行中给出的 172.17.0.2 端口是:1500

现在发送到 host_ip(192.168.134.122) 和 host_port(1234) 的请求被重定向到 ip (172.17.0.2) 和端口 (1500) 的容器。

查看 iptables -L -n -t nat 中的绑定细节

谢谢

于 2017-02-17T09:18:39.977 回答