无法通过网络访问带有--net = host的Docker容器

时间:2018-10-10 12:45:02

标签: docker docker-machine

我正在使用以下配置在 Docker for Windows 上托管的项目:
主机( PC1 )物理IP: LAN
上的 145.118.70.40 主机虚拟IP: DockerNAT

上的 10.0.75.1

我收到了以下问题
容器X( docker run --name X -it --net = host webserver 8080 )可以使用域名 host.docker.internal 访问主机。如果X ping该域名,它将从 192.168.65.2 获得回复。但是,在主机中,没有这样的网络!主机甚至无法使用任何此IP范围pingX。可以使用 DockerNAT 网络从主机访问X,尤其是通过IP: 10.0.75.2 。似乎有一个将 192.168.65.0 映射到 10.0.75.0 的网桥或NAT规则。使用此网桥,X可以访问主机(通过 192.168.65.2 ),而主机可以访问X(通过 10.0.75.2 )。到目前为止没有问题。当我们尝试从主机LAN上IP = 145.118.70.41 的另一台物理计算机( PC2 )访问X时,就会出现此问题。诸如http://145.118.70.40:8080之类的链接应该可以在 PC2 上工作,但不能。如果在同一主机( PC1 )上运行另一个容器Y( docker run -it -p 7000:8080 webserver 8080 ),同时还带有X(注意没有) -net = host 选项用于Y),可以使用http://145.118.70.40:7000 PC2 访问Y。我的问题是:如何在保持-net = host 选项的同时,使用主机的IP地址(与Y一样)从 PC2 访问X?

谢谢。

1 个答案:

答案 0 :(得分:0)

我得到了Docker支持的回复。他们说-net = host 不受Windows Docker的完全支持。