【问题标题】:Connecting to containers IP address is impossible in Docker for Windows在 Docker for Windows 中无法连接到容器 IP 地址
【发布时间】:2016-08-25 20:42:05
【问题描述】:

当您安装使用 Hyper-V 的最新 Docker for Windows 时会发生此问题。

但是您可以在docker network inspect bridge 输出中看到 ip:

"Containers": {
            "...": {
                "Name": "dockerdevenvironment_rabbit_1",
                "EndpointID": "...",
                "MacAddress": "02:42:ac:11:00:04",
                "IPv4Address": "172.17.0.4/16",
                "IPv6Address": ""
            },
            "...": {
                "Name": "webserver",
                "EndpointID": "...",
                "MacAddress": "02:42:ac:11:00:02",
                "IPv4Address": "172.17.0.2/16",
                "IPv6Address": ""
            },
            "...": {
                "Name": "dockerdevenvironment_mongo_1",
                "EndpointID": "...",
                "MacAddress": "02:42:ac:11:00:05",
                "IPv4Address": "172.17.0.5/16",
                "IPv6Address": ""
            }

您甚至无法 ping 它们或以任何方式连接它们。

【问题讨论】:

  • 当您说无法连接时,这是什么意思?您是否正在运行容器并且无法在浏览器中启动它?您是否向容器公开了端口?当你运行 docker ps 时你看到了什么?您是否尝试连接到localhost?这就是 Docker for Windows 容器应该存在的地方。
  • 它没有连接到本地主机,即使是他们自己的例子(docker run -d -p 80:80 --name webserver nginx)

标签: networking docker hyper-v


【解决方案1】:

默认情况下,dockerNAT 将 10.0.75.0/24 分配给 MobyLinuxVM。 MobyLinuxVM 中的 Docker 分配给容器的 IP 地址在 172.17.0.0/16 范围内。您必须更改路由表才能访问容器 IP 地址:

route add 172.17.0.0 MASK 255.255.0.0 10.0.75.2 -p

来源:https://forums.docker.com/t/connecting-to-containers-ip-address/18817

【讨论】:

  • 这只是在有人试图从另一台机器访问容器的情况下。本地主机应该仍然可以工作。
  • @ManoMarks 但事实并非如此。即使是他们自己的 nginx 示例
  • 由于我的主网络使用的是 10.0.0.0/8 网络,Docker 将 192.168.4.0/24 网络分配给了 MobyLinuxVM。看起来你仍然需要映射端口才能访问容器......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-12-17
  • 2019-06-15
  • 1970-01-01
  • 1970-01-01
  • 2022-11-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多