我有一个服务器托管在端口8080上侦听在运行Yosemite的MAC中的boot2docker主机上运行的docker容器上。
如果我尝试从我的机器上卷起端口(例如8080)上的boot2docker IP,我就可以点击在docker容器中运行的服务器并获得响应。
我感兴趣的是我想从另一台机器向此服务器发送请求并获取响应。我尝试使用pfctl添加端口转发规则,但这似乎不起作用。当我在我的机器上执行以下命令时 -
tcpdump -pnti en0 tcp port 8080
并对我的机器的IP进行卷曲,我看到有些东西正在侦听端口8080,但没有回复。我们在这里有两个级别的层次结构 - 我的物理机器,在盒子上运行的boot2docker和运行服务器的docker容器。我怎样才能实现将一台机器的请求发送到另一台具有服务器的机器的任务?
谢谢!
答案 0 :(得分:0)
我能够使用此命令转发来自另一台计算机但在同一网络内的请求 - """
boot2docker ssh -vnNTL<第一台物理机IP>:任何端口: boot2docker IP或localhost>:主机端口映射到容器的端口
""" 示例 - boot2docker ssh -vnNTL 192.168.1.2:5000:localhost:32768
在这里,我可以从任何物理机器发送请求,例如 - curl http://192.168.1.2:5000,它将请求转发到我的boot2docker的IP,其中容器可以提供请求并发回相应的响应,您应该在发送请求的机器上看到它。