如何从不同的 VM 连接到 Docker 实例
How to connect to Docker instance from a different VM
我的 Mac 上有 docker 运行,在 VirtualBox VM 中有 boot2docker。然后我将 Mac:
添加到我的主机文件中
127.0.0.1 nginx
在我的 Mac 上,我可以在浏览器中连接 http://nginx
并加载 docker 容器中的网站。为了测试 IE,我在 VMWare Fusion 中也有一个 Windows VM 运行。在我的 Windows VM 上,我将主机文件配置为:
10.10.123.3 nginx
10.10.123.3
在我的 mac 的 IP 地址中,但是当我在 window machine 的浏览器中转到 http://nginx
时,它确实不加载。我将网络适配器设置为 "Internet Sharing -> Share with my Mac"。我还有一个简单的 http 服务器 运行 通过 python 在端口 8000 上,当我去 http://nginx:8000
时它确实加载了那个站点所以它看起来像我的网络配置和 window主机文件配置正在运行,只是不适用于 docker 东西。
我是否需要做一些特别的事情才能将 docker 内容暴露给我的 window 虚拟机?
我想你会想要 运行
boot2docker ip
获取boot2dockeroracle虚拟盒子的ip地址。如果您使用 -p 启动 docker 容器,例如:
docker start -p 8000:8000 `imagename`
然后使用 http://IpAddressOfOracleVirtBox:8000 如果你没有使用 -p 那么容器的任何端口都不会被暴露。第一个 8000 是 Virtual Box 上的端口。第二个 8000 是容器的端口。如果您希望 virt 的端口 80 将请求转发到容器中的 8000,您可以执行 -p 80:8000。
回答(问题作者编辑)
使用 boot2docker ip
后,您只需使用该 IP 地址,而不是 Window 的 VM 主机文件中 Mac 的 IP 地址。
我猜你无法访问机器,因为网络方法 "Internet Sharing -> Share with my Mac" 只允许虚拟机通过你的 Mac 访问互联网。
我认为你必须在你的虚拟机中创建另一个网络,桥接模式或内部网络。
您使用的网络方法只允许虚拟机访问互联网,而不是您网络中的其他地址。
我想桥接模式更容易,因为 VM 将从您的路由器网络获得一个 IP 地址。
我没有 Mac 可以在这里测试,但我想这就是你遇到的问题。
希望对你有帮助
我的 Mac 上有 docker 运行,在 VirtualBox VM 中有 boot2docker。然后我将 Mac:
添加到我的主机文件中127.0.0.1 nginx
在我的 Mac 上,我可以在浏览器中连接 http://nginx
并加载 docker 容器中的网站。为了测试 IE,我在 VMWare Fusion 中也有一个 Windows VM 运行。在我的 Windows VM 上,我将主机文件配置为:
10.10.123.3 nginx
10.10.123.3
在我的 mac 的 IP 地址中,但是当我在 window machine 的浏览器中转到 http://nginx
时,它确实不加载。我将网络适配器设置为 "Internet Sharing -> Share with my Mac"。我还有一个简单的 http 服务器 运行 通过 python 在端口 8000 上,当我去 http://nginx:8000
时它确实加载了那个站点所以它看起来像我的网络配置和 window主机文件配置正在运行,只是不适用于 docker 东西。
我是否需要做一些特别的事情才能将 docker 内容暴露给我的 window 虚拟机?
我想你会想要 运行
boot2docker ip
获取boot2dockeroracle虚拟盒子的ip地址。如果您使用 -p 启动 docker 容器,例如:
docker start -p 8000:8000 `imagename`
然后使用 http://IpAddressOfOracleVirtBox:8000 如果你没有使用 -p 那么容器的任何端口都不会被暴露。第一个 8000 是 Virtual Box 上的端口。第二个 8000 是容器的端口。如果您希望 virt 的端口 80 将请求转发到容器中的 8000,您可以执行 -p 80:8000。
回答(问题作者编辑)
使用 boot2docker ip
后,您只需使用该 IP 地址,而不是 Window 的 VM 主机文件中 Mac 的 IP 地址。
我猜你无法访问机器,因为网络方法 "Internet Sharing -> Share with my Mac" 只允许虚拟机通过你的 Mac 访问互联网。
我认为你必须在你的虚拟机中创建另一个网络,桥接模式或内部网络。
您使用的网络方法只允许虚拟机访问互联网,而不是您网络中的其他地址。
我想桥接模式更容易,因为 VM 将从您的路由器网络获得一个 IP 地址。
我没有 Mac 可以在这里测试,但我想这就是你遇到的问题。
希望对你有帮助