在Windows上使用--network=host运行Docker,并通过127.0.0.1访问。

12

我有Windows 10专业版,尝试以网络模式主机运行Docker。

我的问题是我无法运行一个Docker并使用主机IP而不是127.0.0.1和IP访问它(在Linux中它的工作方式不同)。

看起来Hyper-V拥有自己的网络,无法使用主机IP进行访问

docker run -d --network=host nginx
输出:
CONTAINER ID        IMAGE                                             COMMAND                  CREATED             STATUS                          PORTS               NAMES
8edd86bf292b        nginx                                             "nginx -g 'daemon of…"   3 seconds ago       Up 2 seconds                                        happy_curie

所以预期没有端口,也没有错误。 当我尝试使用127.0.0.1打开浏览器时,我得到了ERR_CONNECTION_REFUSED。 如果我将端口设置为网络模式而不是主机模式,则可以工作。

docker run -d -p 80:80   nginx

超级虚拟化以太网适配器 vEthernet (DockerNAT):

   Connection-specific DNS Suffix  . :
   IPv4 Address. . . . . . . . . . . : 10.0.75.1
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . 

备注:

  • 更改Hyper-V虚拟交换机管理器中网络为外部 - 无效
    • 防火墙已禁用

有没有关于如何在Windows中使用网络模式主机的想法?

1个回答

26

1
无法使用Docker Toolbox,因为它与Docker for Windows和Mac不兼容。 - Stephen Kuehl
5
令人难以置信,这在Windows上仍然是一个问题... - Rafael Sisto
1
该死的Windows... 哈哈 - Lucas Pottersky
1
哎呀,浪费了4个小时来尝试做这件事。谢谢,伙计。你帮我省下了另外几个小时的尝试... - Nigrimmist
当您说“Docker for Windows”时,是指Windows容器和运行在WSL2中的Linux容器吗? - Luis Ángel Berríos
@LuisÁngelBerríos 是的。主机网络仅适用于Linux主机。使用WSL2后端和Linux容器的Docker桌面仍然符合Windows主机的要求。如果您想要主机网络,则可以卸载Docker桌面,并在WSL2内本地安装Docker引擎。 - W1M0R

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接