Boot2Docker:通过LAN连接到容器

我在我的Mac上使用Boot2Docker 1.3.0,到目前为止,我非常高兴使用它。 但现在我想连接到一个http容器(公开端口8080)不是从我的本地机器,而是从本地networking中的另一台机器? 如果我在本地执行此操作,则只需使用http://192.168.59.103:8080以便使用docker主机的ip地址。 这不能为我的本地networking中的其他机器工作,但使用我的Mac的IP地址也无法正常工作。 我很确定有这个问题的一些解决scheme,但我找不到任何。 这不可能是那么难吗? 我想要的是向我的本地networking中的另一台主机发送http://[IP-Address-of-mac]:8080的请求。 我想我必须在我的本地机器上设置一些路由规则吗? 愿有人告诉我该怎么办? 提前致谢。

最好的祝福

萨沙

您需要从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上,确定它在本地局域网上使用的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 VM的angular度来看的,而不是Mac,因为那是你正在sshing的主机。