我在 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,
Run Code Online (Sandbox Code Playgroud)
现在当我去172.17.0.5时,没有任何反应。
然后用另一种方式检查IP地址。
docker-machine ip default
192.168.99.102
Run Code Online (Sandbox Code Playgroud)
192.168.99.102 作品。
现在我的问题是为什么它输出不同的 IP 地址而第一个不起作用。
Docker 守护进程是 linux 特定的软件,因此要在 OS X 上运行,它必须在 linux 虚拟机中运行。使用 docker machine 会为您解决这个问题。IP 地址172.17.0.5是 linux 虚拟机内 docker 桥上该容器的地址,因此无法从 OS X 主机访问。
该命令docker-machine ip default返回虚拟机本身的 IP 地址,该地址可从 OS X 主机访问。
如果您通过 SSH 连接到 docker-machine 虚拟机,那么您将能够172.17.0.5从该 SSH 连接内进行访问。有关如何执行此操作,请参阅此答案:How to ssh into docker-machine VirtualBox instance?
| 归档时间: |
|
| 查看次数: |
10746 次 |
| 最近记录: |