假设我有一台服务器在OSX的8000端口上运行。我的Docker容器如何通过访问它localhost:8000?由于容器中的应用程序不在我的控制范围内,因此我也无法更改主机名。
localhost:8000
我已经阅读了前面有关使用--net="host"容器访问主机网络的讨论。但是,我在OSX上,并且Docker在VM内运行,因此Docker容器中的 localhost--net="host"转到了VM,而不是我的真实机器。
--net="host"
然后,我尝试像这样的端口转发解决方法:VBoxManage modifyvm "boot2docker-vm" --natpf1 "tcp-port8000,tcp,,8000,,8000";无济于事。
VBoxManage modifyvm "boot2docker-vm" --natpf1 "tcp-port8000,tcp,,8000,,8000";
任何建议将不胜感激。
感谢palimpestor的回答,我弄清楚了:
代替--net="host",使用--add-host="localhost:10.0.2.2"
--add-host="localhost:10.0.2.2"
确实:
10.0.2.2是在NAT模式下为来宾网络接口定义的默认网关(参考)。 阅读: 这是您的主机,从boot2docker看到。
--add-host...``localhost 10.0.2.2在/ etc / hosts中添加(参考)
--add-host...``localhost 10.0.2.2
注意:您需要在boot2docker VM VirtualBox设置中设置NAT适配器(我是通过GUI完成的,不知道CLI)。