从位于 boot2docker 虚拟机内的 Docker 容器作为本地主机访问主机

2023-12-20

假设我有一台服务器在 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(使用前将#替换为@)

从位于 boot2docker 虚拟机内的 Docker 容器作为本地主机访问主机 的相关文章

随机推荐