gpt4 book ai didi

macos - 无法从 Docker 容器内 ping 特定子网

转载 作者:行者123 更新时间:2023-12-01 05:58:17 25 4
gpt4 key购买 nike

创建容器后(哪个并不重要)我使用以下方法进入容器:

docker exec -it <container_name> /bin/bash

通过容器,我可以 ping google.com 以及我工作场所网络上的几乎所有服务器。
但是,由于某种原因,我无法 ping 以 172.20.*.* 开头的 IP 服务器。

例如,我尝试使用 IP 为 10.0.*.*、10.50.*.* 等多个服务器,一切正常。无法访问以 172.20 开头的服务器。
在 Mac 主机上,我可以毫无问题地 ping 所有这些服务器。
我在 Linux 机器和 Windows 机器上尝试了同样的事情,但无法重现该问题。

我假设这与 Docker 通过主机路由连接的方式有关。这可能与 docker 网络通常在 172.18.*.* 上的事实有关。但是,我无法弄清楚。

这是容器内的路由表:
$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 172.18.0.1 0.0.0.0 UG 0 0 0 eth0
172.18.0.0 * 255.255.0.0 U 0 0 0 eth0

使用 Docker CE 17.09.1-ce-mac42 (21090) 运行 macOS High Sierra。

知道发生了什么吗?

最佳答案

某处必须有路由器或防火墙阻止。如果您想要一个好的开始,请从您的 mac 中创建一个 traceroute 172.20.. 以查看它与这些服务器联系所采用的路径。既然是不同的网络,那肯定是路由问题。 Docker 将其网关 172.18.0.1 用于其后的任何内容,因此还需要检查托管它的机器的内部防火墙。上周去过那里。

关于macos - 无法从 Docker 容器内 ping 特定子网,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47922424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com