【问题标题】:Boot2Docker: Connect to container over LANBoot2Docker:通过 LAN 连接到容器
【发布时间】:2014-11-13 05:56:22
【问题描述】:

我在我的 Mac 上使用 Boot2Docker 1.3.0,到目前为止我很高兴使用它。但是现在我想不是从我的本地机器而是从我本地网络中的另一台机器连接到一个 http 容器(暴露端口 8080)?如果我在本地进行,我只使用http://192.168.59.103:8080,所以我使用的是 docker 主机的 IP 地址。这不适用于我本地网络中的其他机器,但使用我的 mac 的 ip 地址也不起作用。我很确定这个问题有一些解决方案,但我找不到任何解决方案。不可能那么难吧?我想要的是从本地网络中的另一台主机向http://[IP-Address-of-mac]:8080 发出请求。我想我必须在我的本地机器上设置一些路由规则,对吧?有人可以告诉我该怎么做吗?提前致谢。

最好的问候

萨沙

【问题讨论】:

标签: macos docker boot2docker


【解决方案1】:

您需要从 OSX 机器端口转发到虚拟机

VBoxManage modifyvm "boot2docker-vm" --natpf1 "tcp-port8080,tcp,,8080,,8080";

应该做的伎俩

或者,您可以使用基于 ssh 的端口转发:

boot2docker ssh -L 8000:localhost:8000

https://github.com/boot2docker/boot2docker/blob/master/doc/WORKAROUNDS.md

【讨论】:

    【解决方案2】:

    在您的 Mac 上,确定它在本地 LAN 上使用的 IP 地址:

    $ ifconfig | grep 192
        inet 192.168.1.21 netmask 0xffffff00 broadcast 192.168.1.255
        inet 192.168.59.3 netmask 0xffffff00 broadcast 192.168.59.255
    

    然后端口转发:

    $ boot2docker ssh -vnNTL 192.168.1.21:8080:localhost:8080
    

    现在,通过端口 8080 进入 Mac 的请求将被转发到端口 8080 上的 boot2docker Linux VM。然后,docker 服务器将从暴露的端口(VM 端口 8080)转发到容器用于 httpd 的端口(可能是 80 个)。

    请注意,上面的“localhost”是从 Linux VM 的角度来看的,而不是 Mac,因为那是您要 ssh 进入的主机。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-05
      • 2019-03-07
      相关资源
      最近更新 更多