【发布时间】:2015-05-22 22:35:30
【问题描述】:
我在运行 Yosemite 的 MAC 中的 boot2docker 主机上运行的 docker 容器上的 8080 端口托管了一个服务器。
如果我尝试从我的机器上 curl 端口(比如 8080)上的 boot2docker IP,我可以访问在 docker 容器中运行的服务器并获得响应。
我感兴趣的是我想从另一台机器向这个服务器发送一个请求并得到响应。我尝试使用 pfctl 添加端口转发规则,但这似乎不起作用。当我在我的机器上执行以下命令时 -
tcpdump -pnti en0 tcp port 8080
在我机器的 IP 上做一个 curl ,我看到有东西在端口 8080 上侦听,但没有响应返回。我们这里有这 2 个层次结构——我的物理机器,在盒子上运行的 boot2docker 和运行服务器的 docker 容器。我怎样才能完成将一台机器的请求发送到另一台将服务器放在 docker 容器中的机器的任务?
谢谢!
【问题讨论】:
-
您应该能够使用“boot2docker ip”来使用 boot2docker 主机的 IP 地址。这行得通吗?
-
好吧,这只是允许您从同一台物理机器访问容器,因为 boot2docker 的 IP 无法从另一台机器访问。但我得到了它的工作,将在下面发布解决方案。
标签: macos docker portforwarding boot2docker