如何连接到远程主机上运行的Docker容器

3
我有两台Windows 10的机器,分别为A和B,并且都安装了Hyper-V。这两台机器都在同一个网络中。
在机器B上,我使用Windows安装程序安装了Docker。我拉取了一个镜像并用以下命令运行:
docker run -p 1337:1337 --name my-image 然后在机器B上,我可以通过打开浏览器窗口到http://127.0.0.1:1337来访问所暴露的HTTP端点。
但是,我无法通过http://machineA.ip.address:1337从机器A打开相同的HTTP端点。
机器A和B之间没有防火墙。
显然,在访问运行在机器B上的Docker容器时,我在机器A和B之间遇到了NAT问题。
如何从机器A访问运行在机器B上的Docker容器所暴露的HTTP端点?

1
尝试使用 docker run -p 0.0.0.0:1337:1337 --name my-image 运行。 - fly2matrix
@fly2matrix 哎呀!太明显了。如果您愿意,我很乐意把它标记为答案? - TheEdge
1个回答

4

您需要将Docker容器的客户端端口暴露出来,以便将其绑定到主机端口。

$ docker run -p 0.0.0.0:1337:1337 --name my-image

上述命令将绑定所有网络接口。
如果您希望,可以通过指定IP地址限制对特定网络接口的访问。

“绑定到所有接口”不是默认设置吗?还是Docker for Windows在这里有特殊之处? - David Maze
当您指定0.0.0.0时,这意味着将其绑定到所有接口。 - fly2matrix
@DavidMaze 我猜Windows在这里很特殊,因为它只绑定到本地主机。 - TheEdge

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