【问题标题】:Access Docker container running on OS X via boot2docker in Windows virtual machine在 Windows 虚拟机中通过 boot2docker 访问 OS X 上运行的 Docker 容器
【发布时间】:2014-12-08 10:38:53
【问题描述】:

概述:

主机:运行 boot2docker 和 Docker 的 Mac OS X
访客:Windows 7

问题:

对于我的网络开发,我在 OS X 上通过 boot2docker 设置了一个 docker 容器。在 OS X 中,我可以通过 boot2docker 访问我的 docker 服务。

运行boot2docker ip,我明白了:

The VM's Host only interface IP address is: 192.168.59.103

我正在端口 1234 上运行 Django 应用程序(我已将 docker 映像上的端口 5000 映射到我 Mac 上的端口 1234),我可以通过地址 192.168.59.103:1234 在 Web 浏览器中的 OS X 中访问该应用程序。在 OS X 中一切正常。

现在我必须在 IE 上测试 Web 内容,这就是为什么我通过 Microsoft 的modern.IE 网站下载了 IE8、IE10 等。结果,我有了更多的 VirtualBox 映像,它们运行 Windows 7 并带有适当的 IE 版本。

现在的问题是如何访问那些 Windows 实例中的 Docker 容器,以便在多个 IE 版本下对其进行测试。

到目前为止我做了什么:

想法 1

为了访问 Django 应用程序,我查找了我的本地 IP 地址并尝试在 Windows 客户机中通过 NAT 访问它。给定我的本地 IP 地址192.168.178.24,我尝试从 Windows 访问192.168.178.24:1234。虽然我可以从 Windows ping 192.168.178.24,但我确实只在端口 1234 上得到了超时。

想法 2

Boot2docker 运行一个名为 boot2docker-vm 的 VirtualBox 机器。它带有两个网络适配器,NAT 和一个名为vboxnet0 的仅限主机的适配器。后者的地址为192.168.59.3(这是boot2docker ip 返回的地址),网络掩码为255.255.255.0。它在服务器地址192.168.59.99 上运行一个DHCP 服务器,它提供来自192.168.59.103-254 的地址。

我为我的 Windows 来宾系统添加了第二个网络适配器,它也可以通过仅主机适配器访问网络 vboxnet0。当连接到网络时,Windows 机器确实获得了一个有效的 IP 并且可以 ping IP 192.168.59.103。但我无法在端口1234 上连接到我的 Django 实例。如果我尝试在 Windows 中调用 192.168.59.103:1234,我会超时。

为什么无法连接到 Django 实例?你能帮助我吗?提前致谢。

【问题讨论】:

    标签: macos virtualbox boot2docker


    【解决方案1】:

    我找到了解决问题的方法here。 要访问 Django 实例,我必须在 boot2docker-vm 机器上打开端口。

    这可以通过boot2docker-vm → settings → Network → Adapter 1 (NAT) → Port Forwarding 来完成,并添加一个新规则,其中Host IPGuest IP 可以留空,Host PortGuest Port 应设置为1234

    另一种方法是在命令行中执行以下命令

    VBoxManage modifyvm "boot2docker-vm" --natpf1 "tcp-port1234,tcp,,1234,,1234";
    

    当然,如果使用了多个端口,则需要对所有端口执行此操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-06
      • 2019-09-20
      • 1970-01-01
      • 1970-01-01
      • 2022-01-02
      • 1970-01-01
      相关资源
      最近更新 更多