我有两台运行 Windows 10 和 Hyper-V 的 Windows 机器机器 A、机器 B。机器 A 和 B 都在同一网络上。
在机器 B 上,我使用 Windows 安装程序安装 docker。我拉一个图像然后运行它:
docker run -p 1337:1337 --name my-image
然后在机器 B 上,我可以通过打开浏览器窗口访问 http://127.0.0.1:1337
来访问公开的 http 端点。
但是我似乎无法从机器 A 打开相同的 http 端点:
http://machineA.ip.address:1337
机器A和B之间没有防火墙。
很明显,在访问机器 B 上的 docker 容器时,机器 A 和 B 之间存在 NAT 问题。
如何从机器 A 访问机器 B 上运行的 docker 容器公开的 HTTP 端点?
最佳答案
您必须公开容器的 docker guest 端 Eloquent 能将其与主机端口绑定(bind)。
$ docker run -p 0.0.0.0:1337:1337 --name my-image
以上命令会将其与所有网络接口(interface)绑定(bind)。
如果需要,您可以通过特定的 IP 地址限制对特定网络接口(interface)的访问。
关于docker - 如何连接到远程主机上运行的 docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53081553/