Macos Boot2Docker:通过LAN连接到容器

Macos Boot2Docker:通过LAN连接到容器,macos,docker,boot2docker,Macos,Docker,Boot2docker,我在Mac上使用Boot2Docker 1.3.0,到目前为止我非常高兴使用它。但是现在我想连接到http容器(暴露端口8080),不是从本地机器而是从本地网络中的另一台机器?如果我在本地进行,我只使用http://192.168.59.103:8080所以我使用的是docker主机的ip地址。这不适用于本地网络中的其他机器,但使用mac的ip地址也不起作用。我很确定这个问题有一些解决办法,但我找不到任何解决办法。不会那么难吧?我想要的是从本地网络中的另一台主机向http://[mac的IP地址

我在Mac上使用Boot2Docker 1.3.0,到目前为止我非常高兴使用它。但是现在我想连接到http容器(暴露端口8080),不是从本地机器而是从本地网络中的另一台机器?如果我在本地进行,我只使用
http://192.168.59.103:8080
所以我使用的是docker主机的ip地址。这不适用于本地网络中的其他机器,但使用mac的ip地址也不起作用。我很确定这个问题有一些解决办法,但我找不到任何解决办法。不会那么难吧?我想要的是从本地网络中的另一台主机向http://[mac的IP地址]:8080发出请求。我想我必须在本地机器上设置一些路由规则,对吗?谁能告诉我该怎么办?提前谢谢

致意


Sascha

您需要从OSX盒向前移植到虚拟机

VBoxManage修改vm“boot2docker vm”--natpf1“tcp-port8080,tcp,,8080,8080”

我们应该这样做

或者,您可以使用基于ssh的端口转发:

boot2dockerssh-l8000:localhost:8000


请参阅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的角度来看的,因为这是您通过ssh连接到的主机。

这里的“问题1:端口转发”下的各种提示: