如何从 Windows 10 上的容器连接到 docker 主机(Docker for Windows)

新手上路,请多包涵

Docker 容器可以在哪个 IP 地址连接到其在 Docker for Windows(在 Windows 10 上)上的主机?你如何找到这个IP地址?

示例:您在 Windows 10 机器上的端口 1234 上运行了一项服务。容器内的程序必须访问此服务。程序应该使用什么 IP 地址连接到主机?

原文由 RemiX 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.5k
2 个回答

简短回答:在大多数情况下,您需要 10.0.75.1

在 Docker for Windows 中,容器通过称为 DockerNAT 的 vEthernet 适配器进行通信。要查找其详细信息,请打开命令提示符并键入

ipconfig

寻找一个看起来像的条目

Ethernet adapter vEthernet (DockerNAT):

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::fd29:297:4583:3ad4%4
   IPv4 Address. . . . . . . . . . . : 10.0.75.1
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . :

IPv4 Address 右边的IP地址是你需要的。

注意:确保服务允许来自主机外部的连接。就该服务而言,您的 docker 容器是另一台机器。还要确保 Windows 防火墙允许与服务进行通信。

原文由 RemiX 发布,翻译遵循 CC BY-SA 3.0 许可协议

允许您从容器连接到主机的选项之一是使用参数运行容器

--net="host"

例子:

 docker run -it --net="host" container_name

然后从容器中,您可以使用以下命令连接到主机上的服务:

localhost:port

但在这种情况下,您将无法使用 --link 参数链接更多容器。

有关此主题的更多信息:http: //phillbarber.blogspot.sk/2015/02/connect-docker-to-service-on-parent-host.html

更新

从版本 18.03 开始,您可以使用 DNS 名称 host.docker.internal ,它解析为主机使用的内部 IP 地址。

更多: https ://docs.docker.com/docker-for-windows/networking/

在旧版本上,您可以使用在主机上执行命令 ipconfig -> 以太网适配器 -> IPv4 地址的 IP 地址连接到在主机 Windows 上运行的服务

更新 根据下面的 Datz 评论, docker.for.win.localhost 在 Docker for Windows 中工作(已确认)。

原文由 tomas.zigardi 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题