我在Mac上使用Boot2Docker 1.3.0,到目前为止我很高兴使用它。但现在我想连接到http容器(暴露端口8080),不是从我的本地机器,而是从我本地网络中的另一台机器?如果我在本地进行,我只使用http://192.168.59.103:8080
,所以我使用的是docker主机的ip地址。这对我本地网络中的其他机器不起作用,但使用我的mac的ip地址也不起作用。我确信这个问题有一些解决办法,但我找不到。不会那么难吧?我想要的是从本地网络中的另一台主机向http://[IP-Address-of-mac]:8080
发出请求。我想我必须在本地机器上设置一些路由规则,对吧?有人能告诉我该怎么办吗?提前谢谢。
向致以最良好的问候
Sascha
您需要从OSX框转发到虚拟机
VBoxManage modifyvm "boot2docker-vm" --natpf1 "tcp-port8080,tcp,,8080,,8080";
应该完成
或者,您可以使用基于ssh的端口转发:
boot2docker ssh -L 8000:localhost:8000
参见https://github.com/boot2docker/boot2docker/blob/master/doc/WORKAROUNDS.md
在Mac上,确定它在本地LAN上使用的IP地址:
$ ifconfig | grep 192
inet 192.168.1.21 netmask 0xffffff00 broadcast 192.168.1.255
inet 192.168.59.3 netmask 0xffffff00 broadcast 192.168.59.255
然后端口转发:
$ boot2docker ssh -vnNTL 192.168.1.21:8080:localhost:8080
现在,通过端口8080进入Mac的请求将被转发到端口8080上的boot2docker Linux VM。然后,docker服务器将从暴露的端口(VM端口8080)转发到容器用于httpd的端口(可能是80)。
请注意,上面的"localhost"是从Linux虚拟机的角度来看的,而不是从Mac的角度来看,因为这是您要访问的主机。