Boot2Docker:通过LAN连接到容器

时间:2014-11-13 05:56:23

标签: macos docker 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

2 个答案:

答案 0 :(得分:8)

您需要从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

答案 1 :(得分:1)

在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 VM而不是Mac的角度来看的,因为那是你正在使用的主机。