如何从主机外部(同一网络)连接到docker容器[OSX 10.11]

时间:2016-04-28 17:49:44

标签: macos docker lan

设置:

  • 计算机A - 这是Docker-Machine"默认"跑下 VirtualBox的。 "默认"正在运行一个名为" Odoo"的容器。 "默认" 是使用Docker's installation process创建的。 " Odoo"是 使用Odoo's installation process创建。
  • 计算机B - 这是同一局域网(LAN)上的计算机 作为计算机A。
  • 路由器 - 这将LAN上的计算机A和计算机B连接在一起。

软件:

  • 计算机A - OSX 10.11.3 / VirtualBox 5.0.18 / Docker 1.11
  • 计算机B - Windows 7 / Firefox
  • 路由器 - ASUSWRT

问题:

  • Odoo可以在计算机A上使用"默认" IP地址加 Odoo的相关端口号。地址的一个例子是: 192.168.99.101:8069。
  • 使用"默认""无法在计算机B上访问Odoo。 IP地址 加上Odoo的相关端口号。

问题:

  • 如何配置VirtualBox环境以使计算机B可以 在局域网上访问Odoo?

2 个答案:

答案 0 :(得分:6)

192.168.99.101是计算机A内部的Docker主机IP地址。您只需要将defaut的端口8069的端口转发配置到主机的端口8069.然后odoo将可访问通过计算机B与计算机A的IP地址(例如:10.0.1.22)加上端口8069.由于两台计算机都在同一网络中,因此您不需要更改路由器的设置(防火墙设置除外,如果有的话)< / p>

10.0.1.22:8069

需要在虚拟设备设置中设置端口转发

enter image description here

enter image description here

答案 1 :(得分:3)

注意!

涉及修改网络适配器1的解决方案更容易实现。这是推荐的解决方案。

背景:

安装Docker时,会在VirtualBox中创建一个称为“默认”的虚拟机(VM)。在VirtualBox Docker中设置一个网络配置,允许主机(计算机A)通过docker-machine ip访问在“default”上运行的容器。但是计算机B无法通过docker-machine ip访问相同的容器。

基本流程:

  1. Adjust Settings of the VM "default" via Oracle's VM VirtualBox Manager to form a Bridged Network
  2. 启动“默认”VM。
  3. 查找“默认”VM的桥接网络IP(BN-IP)地址。
  4. 启动Odoo容器。
  5. 在计算机B的网络浏览器中输入BN-IP地址和Odoo的端口(例如,192.168.1.93:8069)。
  6. 享受(除非出现问题以及什么时候出错?)。
  7. 调整VM“默认”

    的设置
    1. 打开VirtualBox GUI。
    2. 查看GUI左侧的VM列表。
    3. 点击“默认”(或您要修改的VM)
    4. 单击“设置”图标(齿轮对象)
    5. 按照屏幕截图。注意:如果使用以太网电缆连接LAN,请选择en0而不是en1。屏幕截图已删除MAC地址。它应该自动填充。enter image description here

      启动“默认”VM

      对于Mac,最简单的方法是点击Docker QuickStart Terminal图标启动“默认”VM。

    6. enter image description here

      等待一两分钟后,您将看到一个包含“默认”IP的闪屏。这不是您正在寻找的BN-IP。 enter image description here

      查找“默认”VM的BN-IP地址

      这是关键部分,让我失意了好几个小时。幸运的是好network discovery instructions exist。运行Docker终端中的指令,并显示“default.YourLANDomain”的地址。它看起来像是:


      default.ripcord.lan(192.168.1.93)at x:x:xx:xx:xx:xx on en1 ifscope [ethernet]

      注意上述地址的“默认”部分。这就是Docker VM的名称。方便人类识别。

      如果以上方法无法找到“默认”VM的BN-IP,那么您可能很幸运地看到了路由器看到的内容(请参阅下面的示例)。请注意,“jakes-macbook”在设备图标附近有一个“2”注释。这意味着有两个客户端与图标相关联。 192.168.1.24不是“默认”VM的BN-IP。 IP地址将来回切换(奇数次)。另一个地址192.168.1.93是“默认”VM的BN-IP enter image description here

      永无止境的故事

      启动Odoo容器,然后使用计算机B在BN-IP地址192.168.1.93:8069(例如)访问它。巨大的成功!希望....

      疑难解答

      使用ping尝试确定“默认”VM的BN-IP是否处于活动状态并从那里开始使此方法有效。有关更简洁的解决方案,请参阅有关修改网络适配器1的方法。这是一种更容易实现的方法。