【问题标题】:docker-machine: No route to host to default docker machine (using host-only vbox network) on some wifi networksdocker-machine:在某些 wifi 网络上,没有路由到默认 docker 机器(使用仅主机 vbox 网络)的主机
【发布时间】:2016-05-01 04:27:06
【问题描述】:

我在 OS X 上运行 docker-machine,它在我的家庭 wifi 网络 (wifi-one) 上运行良好。

在另一个 wifi 网络 (wifi-two) 上,我无法通过 docker-machine 或 ping 访问默认机器。我尝试删除所有 docker 和 virtual box 软件和缓存并在连接 wifi-2 时重新安装,但无济于事。

docker-machine 在 vi​​rtual box 中使用了一个小型 vm,它使用主机专用的 vbox 网络 (vboxnet0) 在主机和 vm 之间进行通信。

在 wifi-one 上,我可以 ping 通 vboxnet0 (192.168.99.1) 的网关,也可以 ping 虚拟机 (192.168.99.100)。在路由表中,我可以使用正确的接口查看到 vm 的路由:

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            dlinkrouter        UGSc           60        2     en0
...
dlinkrouter        c0:a0:bb:xx:xx:xx  UHLWIir        66      155     en0   1180
192.168.99         link#10            UC              2        0 vboxnet
192.168.99.100     8:0:27:db:16:21    UHLWIi          2       42 vboxnet   1109
...

在 wifi-2 上,我可以 ping vboxnet0 网关,但不能 ping 虚拟机。 Ping 报告请求超时,但 docker-machine 报告“没有到主机的路由”。路由表在连接到 wifi-2 时,会在 wifi 接口 (en0) 上显示到 vboxnet0 主机专用网络的路由,而不是 vboxnet0 接口。同样好奇的是默认路由是到 vboxnet0 网关的路由,但路由表中没有 wifi 路由器的迹象。尽管如此,互联网连接在 wifi-two 上仍能正常工作。

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            192.168.99.1       UGSc           46        0     en0
...
192.168.99         link#4             UCS             9        0     en0
192.168.99.1/32    link#4             UCS             2        0     en0
192.168.99.1       dc:9f:db:2b:89:39  UHLWIir        46       61     en0   1197
192.168.99.100     link#4             UHLWIi          1        3     en0

所以,我真的不知道问题出在哪里 - 路由器、mac os、虚拟机或 docker-machine。我怀疑路由器的配置有些有趣,但我不明白为什么 wifi 路由器会与 virtualbox host-only 网络的路由有任何关系。

编辑:通过 en0 手动删除到 192.168.99 的 en0 路由并运行 sudo route -nv add -net 192.168.99 -interface vboxnet0 似乎确实可以在 wifi-2 上解决此问题。

但我想了解为什么会发生这种情况 - 为什么当我加入 wifi-two 时没有自动到 vboxnet0 的路由,我想找到一个比在 wifi 上运行 route add 更好的解决方案-两个。

【问题讨论】:

    标签: networking docker routing virtualbox docker-machine


    【解决方案1】:

    我想通了。有点傻:

    wifitwo 的子网是 192.168.99。相同的子网 docker 用于它为默认 VM 创建的仅主机网络。所以冲突导致了各种神秘的错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-08
      • 2021-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 2019-08-25
      • 2016-02-27
      相关资源
      最近更新 更多