【问题标题】:Docker container IP addressDocker 容器 IP 地址
【发布时间】:2015-12-02 17:58:49
【问题描述】:

我在 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


【解决方案1】:

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 虚拟机,那么您将能够从该 SSH 连接中访问 172.17.0.5。有关如何执行此操作,请参阅此答案:How to ssh into docker-machine VirtualBox instance?

【讨论】:

  • 值得注意的是,您也可以“暴露”端口。这意味着,如果您想从不是 VM 的设备访问端口 80(在这种情况下),您可以执行类似 -p 8080:80 的操作(其中 80 是容器内的端口,端口 @987654328 @ 是主机上的端口)。然后可以访问192.168.99.102:8080 并路由到容器内的80
猜你喜欢
  • 2019-04-14
  • 1970-01-01
  • 2013-09-15
  • 1970-01-01
  • 1970-01-01
  • 2022-08-15
  • 1970-01-01
  • 2017-03-20
  • 2021-07-08
相关资源
最近更新 更多