[英]docker-machine: No route to host to default docker machine (using host-only vbox network) on some wifi networks
我在OS X上运行docker-machine,它在我的家庭wifi网络(wifi-one)上工作得很好。
在另一个wifi网络(wifi-two)上,我无法通过docker-machine或ping来访问默认机器。 我已经尝试删除所有的docker和虚拟盒软件和缓存,并在连接wifi-two时重新安装,但无济于事。
docker-machine在虚拟盒中使用一个小vm,它使用仅主机的vbox网络(vboxnet0)在主机和vm之间进行通信。
在wifi-one上,我可以将网关ping到vboxnet0(192.168.99.1),我可以ping vm(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-two上,我可以ping vboxnet0网关,但不能ping vm。 Ping报告请求超时,但是docker-machine报告“没有到主机的路由”。 路由表连接到wifi-two时,显示到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路由器与到虚拟机主机专用网络的路由有任何关系。
编辑:通过en0手动删除到192.168.99的en0路由并运行sudo route -nv add -net 192.168.99 -interface vboxnet0
似乎在wifi-two上解决了这个问题。
但我想了解为什么会发生这种情况 - 为什么当我加入wifi-two时没有自动路由到vboxnet0,我想找到一个更好的解决方案,而不是在我使用wifi-two时运行route add
。
我想到了。 这有点愚蠢:
wifitwo的子网是192.168.99。 相同的子网docker用于为默认VM创建的仅主机网络。 所以冲突导致各种神秘的错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.