无法在macOS中ping通docker

3

我在本地安装了Docker,但是在Mac上无法ping它,但是在Ubuntu上可以ping同样的东西。

$ docker inspect -f '{{ .NetworkSettings.IPAddress }}' n1
172.17.0.2

$ ping 172.17.0.2
PING 172.17.0.2 (172.17.0.2): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3
Request timeout for icmp_seq 4
Request timeout for icmp_seq 5
^C
--- 172.17.0.2 ping statistics ---
7 packets transmitted, 0 packets received, 100.0% packet loss

我按照https://docs.docker.com/docker-for-mac/的指示在Mac上安装了Docker。

2个回答

3

这是正常的。

看一下您的Mac界面配置 - 在Mac本身上没有172.x.x.x网络。这些网络存在于实际托管Docker的xhyve Linux虚拟机中。

当您使用端口映射(例如docker run -p ...)时,网络连接会被映射,但ping不会像这样工作。


谢谢,那么我有没有办法从我的本地主机连接到Docker?实际上,我的Docker容器中有Cassandra,我想从我的本地主机将数据推送到那里。 - Avinash
1
是的,您可以使用类似于 docker run -p x:y 的命令绑定Cassandra的端口...其中 x 是Mac上的端口,y 是Cassandra容器暴露的端口。然后,您可以像在任何其他服务器上运行它一样与Cassandra进行通信。 - Dan Lowe

2
这不仅仅是关于ping的问题。正如在问题155中所评论的:

Docker for Mac内部的xhyve虚拟机没有网络适配器,也没有可路由的IP(例如boot2docker的192.168.100.99)

使用boot2docker和route命令,可以将所有容器IP路由到虚拟机网络。

我们需要这个功能来处理xhyve。

(Docker for Mac论坛中有很多关于此主题的帖子

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接