从一个也在boot2docker虚拟机中的Docker容器作为localhost访问主机
假设我有一个在OSX上的8000端口上运行的服务器。 我的Docker容器如何通过localhost:8000
访问它? 我无法更改主机名称,因为容器中的应用程序不在我的控制范围之内。
我已经阅读了前面有关使用--net="host"
来访问主机networking的容器的讨论。 但是,我在OSX上,Docker在虚拟机中运行,所以Docker容器中的localhost使用--net="host"
进入虚拟机,而不是真正的机器。
然后我尝试端口转发的解决方法,如下所示: VBoxManage modifyvm "boot2docker-vm" --natpf1 "tcp-port8000,tcp,,8000,,8000";
无济于事。
任何build议将不胜感激。
感谢palimpestor的回答,我发现:
而不是--net="host"
,使用--add-host="localhost:10.0.2.2"
确实:
- 10.0.2.2是NAT模式( 参考 )中为访客networking接口定义的默认网关。
阅读: 这是你的主机,从boot2docker看。 -
--add-host...
正在/ etc / hosts中添加localhost 10.0.2.2
( 引用 )
注意:您需要在boot2docker VM VirtualBox设置中设置一个NAT适配器(我通过GUI完成,不知道CLI)。
而不是使用--net="host"
运行,请尝试--add-host="localhost:192.168.59.3"
,这是boot2docker主机IP。