如何从其他VM连接到Docker实例

时间:2015-03-12 18:05:04

标签: macos docker boot2docker

我在我的Mac上使用VirtualBox VM中的boot2docker运行了docker。然后我添加到我的Mac上的主机文件中:

127.0.0.1 nginx

在我的Mac上,我可以在浏览器中连接http://nginx,然后加载docker容器中的网站。我还有一个在VMWare Fusion中运行的Windows VM,以便测试IE。在我的Windows VM上,我将主机文件配置为:

10.10.123.3 nginx

10.10.123.3在我的Mac的IP地址中但是当我在浏览器窗口机器上转到http://nginx时,它不会加载。我将网络适配器设置为“Internet共享 - >与我的Mac共享”。我还有一个简单的http服务器在端口8000上通过python运行,当我去http://nginx:8000时,它确实加载了该站点,所以看起来我的网络配置和窗口主机文件配置正在工作,只是不用于docker的东西

为了能够将Docker的东西暴露给我的窗口VM,我有什么特别的事情吗?

2 个答案:

答案 0 :(得分:1)

我想你会想要运行

boot2docker ip

获取boot2docker oracle虚拟盒的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地址。

答案 1 :(得分:0)

我猜您无法访问该计算机,因为网络方法" Internet Sharing - >与我的Mac分享"只允许VM通过Mac访问互联网。

我认为您必须在VM,网桥模式或内部网络中创建另一个网络。

您使用的网络方法仅允许VM访问互联网,而不是网络中的其他地址。

我认为桥接模式更容易,因为VM将从您的路由器网络获得IP地址。

我没有在这里测试Mac,但我想这就是你遇到的问题。

我希望能帮到你。