Docker容器的IP地址

我在Mac OSX上使用Docker。

运行一个容器后,我检查IP地址。

docker inspect container-name | grep IP "LinkLocalIPv6Address": "", "LinkLocalIPv6PrefixLen": 0, "SecondaryIPAddresses": null, "SecondaryIPv6Addresses": null, "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "IPAddress": "172.17.0.5", "IPPrefixLen": 16, "IPv6Gateway": "", "IPAddress": "172.17.0.5", "IPPrefixLen": 16, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, 

现在当我去172.17.0.5,没有任何反应。

然后以另一种方式检查IP地址。

 docker-machine ip default 192.168.99.102 

192.168.99.102作品。

现在我的问题是为什么它输出不同的IP地址,第一个不起作用。

Docker守护进程是Linux特定的软件,因此要在OS X上运行,它必须在Linux虚拟机内运行。 使用docker机为您照顾这个。 IP地址172.17.0.5是linux虚拟机中docker bridge上的那个容器的地址,因此无法从OS X主机访问。

命令docker-machine ip default返回虚拟机本身的IP地址,可从OS X主机访问。

如果您通过SSH连接到docker-machine虚拟机,那么您将能够在该SSH连接中达到172.17.0.5 。 对于如何做到这一点,看到这个答案: 如何SSH入docker机VirtualBox实例?