如何从Windows 10上的容器连接到码头主机(Docker for Windows)
docker容器可以在Docker for Windows(在Windows 10上)连接到其主机的IP地址?你如何找到这个IP地址?如何从Windows 10上的容器连接到码头主机(Docker for Windows)
示例:您的Windows 10计算机上的端口1234上运行的服务。您的容器中的程序必须访问此服务。程序使用什么IP地址连接到主机?
简答题:在大多数情况下,您需要10.0.75.1。
在Docker for Windows中,容器通过名为DockerNAT的vEthernet适配器进行通信。要了解其详细信息,请打开命令提示符和看起来像
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 . . . . . . . . . :
的IP地址的IPv4 Address
右边是一个你需要的一个条目类型
ipconfig
看。
注意:确保服务允许来自主机外部的连接。就该服务而言,您的码头集装箱是不同的机器。还要确保Windows防火墙允许与服务进行通信。
之一的,可以让你从容器到主机连接选项,是与参数运行您的容器
--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
正如我从我的尝试和[这个答案](http://stackoverflow.com/questions/35586778/docker-container-doesnt-expose-ports-when-net-host-is- mentioned-in-the-docker ),'--net =“host”'不启用端口映射(比如端口80到8000),并可能导致主机端口号和Docker容器端口号冲突(例如,如果主机和容器都有Apache在端口80上运行)。 – RemiX
您的答案不适用于Windows和Mac atm。 '--net =“host”'只适用于Linux。在Mac上,您可以通过名称'docker.for.mac.localhost'访问主机,在Windows上没有这样的名称,您可以使用'ipconfig'获得网桥IP地址 – Derp
在某些情况下,这是** ** 10.0.0.2 – nwinkler
你好,你的容器是Windows或Linux? –