Boot2Docker:通过局域网连接到容器



我在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的角度来看,因为这是您要访问的主机。

最新更新