我在Mac上使用Boot2Docker 1.3.0,到目前为止我很高兴使用它。但是现在我想连接到一个http容器(暴露端口8080),而不是从我的本地机器连接到本地网络中的另一台机器?如果我在本地执行此操作,我只需使用http://192.168.59.103:8080
,因此我使用了docker主机的ip地址。这不适用于我本地网络中的其他计算机,但使用我的mac的ip地址也不起作用。我很确定这个问题有一些解决方案,但我找不到任何解决方案。它不是很难吗?我想要的是从本地网络中的另一台主机向http://[IP-Address-of-mac]:8080
发出请求。我想我必须在我的本地机器上设置一些路由规则吗?愿有人告诉我该怎么办?提前谢谢。
祝你好运
的Sascha
答案 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的角度来看的,因为那是你正在使用的主机。