在Docker for Mac中,容器所看到的主机IP地址是什么?

6
我需要在我的容器上设置调试程序,这要求我设置远程(docker主机)IP。在不同的教程中,我发现列出了不同的可能解决方案的IP地址。在我的容器中,我运行了一个Web服务器,显示从我的主机机器到容器的连接来自172.19.0.1。这是Docker for Mac版本1.11.x
但是,在Docker for Mac中,我如何可靠地找到从容器中看到的主机IP?什么时候可能更改此IP?
编辑:与https://dev59.com/vmAg5IYBdhLWcg3w_fLV#24716645重复。

@VonC 这不是重复问题,因为这个问题涉及到“Docker for Mac”,它在架构上有一些重要的区别。 - ciekawy
你能具体说明一下监听服务和客户端连接是在哪里(在Mac主机上还是容器内部)吗? 要从容器连接到Mac主机,只需使用通常为en0的主Mac主机IP即可。对于相反的方向,目前似乎唯一的方法是使用通常的Docker端口映射,例如-p 1234:1234 - ciekawy
1个回答

10

您可以通过运行此命令在容器内获取主机的 IP:

/sbin/ip route|awk '/default/ { print $3 }'

4
我取得了IP地址,但无法从容器中连接到它... - Tyguy7
这一定是你连接到 IP 的方式吧? - Kevin Simper
检查您的容器网络(也称为docker0)和主机之间是否存在可用的网络路由,可能不会:/ - Thomas Decaux
1
这个命令到底是在做什么? - Robbo_UK
7
从Docker 17.06版本开始,您可以使用docker.for.mac.localhost,它应该解析为正确的主机IP。 - David Soroko
这里的最后一条评论应该被接受为答案。正如@ciekawy所提到的,这不是一个重复的问题,因为它涉及到Mac上的Docker。 - tomas

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