假设我有一台服务器在 OSX 上的端口 8000 上运行。我的 Docker 容器如何通过以下方式访问它localhost:8000
?我也无法更改主机名,因为容器中的应用程序不在我的控制范围内。
我读过之前关于使用的讨论--net="host"
用于容器访问主机网络。然而,我在 OSX 上,Docker 在虚拟机内运行,所以本地主机从 Docker 容器中--net="host"
转到虚拟机而不是我的真实机器。
然后我尝试了端口转发解决方法 https://github.com/boot2docker/boot2docker/blob/master/doc/WORKAROUNDS.md像这样:VBoxManage modifyvm "boot2docker-vm" --natpf1 "tcp-port8000,tcp,,8000,,8000";
无济于事。
任何建议将不胜感激。
感谢 palimpestor 的回答,我明白了:
代替--net="host"
, use --add-host="localhost:10.0.2.2"
Indeed:
- 10.0.2.2 是为 NAT 模式下的访客网络接口定义的默认网关(参考 https://www.virtualbox.org/manual/ch09.html#idp46608647496736).
Read: 这是你的主机,从 boot2docker 可以看到。
-
--add-host...
正在添加localhost 10.0.2.2
在 /etc/hosts 中(参考 https://docs.docker.com/engine/reference/run/#network-settings)
注意:您需要在 boot2docker VM VirtualBox 设置中设置 NAT 适配器(我是通过 GUI 完成的,不知道 CLI)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)