我在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地址,而第一个不起作用。
答案 0 :(得分:2)
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
。有关如何执行此操作,请参阅以下答案:How to ssh into docker-machine VirtualBox instance?