如何从不同的VM连接到Docker实例
我有一个在VirtualBox虚拟机中使用boot2docker在我的Mac上运行的docker。 然后我添加到我的Mac上的主机文件:
127.0.0.1 nginx
在我的Mac上,我可以在浏览器中连接http://nginx
,并加载Docker容器中的网站。 我也有一个运行在VMWare Fusion中的Windows VM来testingIE。 在我的Windows VM上,我的主机文件configuration为:
10.10.123.3 nginx
10.10.123.3
在我的mac的IP地址中,但是当我在窗口机器的浏览器中去http://nginx
时,它不加载。 我将networking适配器设置为“Internet共享 – >与我的Mac共享”。 我也有一个简单的http服务器端口8000运行通过python,当我去http://nginx:8000
它加载该网站,所以它似乎像我的networkingconfiguration和窗口主机文件configuration工作,而不是docker的东西。
有什么特别的,我必须做的能够揭露docker的东西到我的窗口虚拟机?
我想你会想跑
boot2docker ip
获取boot2docker oracle虚拟框的ip地址。 如果你启动docker容器与-p像:
docker start -p 8000:8000 `imagename`
然后使用http:// IpAddressOfOracleVirtBox:8000,如果你没有使用-p,那么容器中的任何端口都将被暴露。 第一个8000是虚拟盒子上的端口。第二个8000是容器的端口。 如果您希望将端口80从virt转发到容器中的8000,则可以执行-p 80:8000。
答案(由问题作者编辑)
使用boot2docker ip
,您只需使用该IP地址而不是Windows的VM hosts文件中的Mac IP地址。
我猜你不能访问机器,因为networking方法“互联网共享 – >与我的Mac共享”只允许VM通过你的Mac访问互联网。
我认为你必须在虚拟机,桥接模式或内部networking中创build另一个networking。
您使用的networking方法只允许虚拟机访问互联网,而不是您的networking中的其他地址。
我猜桥接模式更容易,因为虚拟机会从你的路由器networking获得一个IP地址。
我没有Mac在这里testing,但我想这是你的问题。
我希望能帮助你。