一尘不染

从同样位于boot2docker vm内的Docker容器以本地主机访问主机

docker

假设我有一台服务器在OSX的8000端口上运行。我的Docker容器如何通过访问它localhost:8000?由于容器中的应用程序不在我的控制范围内,因此我也无法更改主机名。

我已经阅读了前面有关使用--net="host"容器访问主机网络的讨论。但是,我在OSX上,并且Docker在VM内运行,因此Docker容器中的
localhost--net="host"转到了VM,而不是我的真实机器。

然后,我尝试像这样的端口转发解决方法VBoxManage modifyvm "boot2docker-vm" --natpf1 "tcp-port8000,tcp,,8000,,8000";无济于事。

任何建议将不胜感激。


阅读 245

收藏
2020-06-17

共1个答案

一尘不染

感谢palimpestor的回答,我弄清楚了:

代替--net="host",使用--add-host="localhost:10.0.2.2"

确实:

  • 10.0.2.2是在NAT模式下为来宾网络接口定义的默认网关(参考)。
    阅读: 这是您的主机,从boot2docker看到。

  • --add-host...``localhost 10.0.2.2在/ etc / hosts中添加(参考

注意:您需要在boot2docker VM VirtualBox设置中设置NAT适配器(我是通过GUI完成的,不知道CLI)。

2020-06-17