boot2docker:没有到主机的路由

boot2docker: No route to host

我无法获取 Docker Toolbox for Windows 10 在公司代理后工作。

我无法 docker 登录或 docker 运行 工作,所以这就是我所做的调试。

我在虚拟机中创建了一个普通的 ubuntu 机器。

在我的主机上,我在端口 8000 上启动简单服务器 运行。

在ubuntu中:

$ curl 10.0.2.2:8000
$ [it retrieves the html being served]

$ curl www.google.com 
$ curl (7) Failed to connect to www.google.com port 80: Connection refused
$ export http_proxy=http://my-proxy:3128
$ curl www.google.com
$ [302 HTTP response from google]

启动 2docker:

$ curl 10.0.2.2:8000
$ [it retrieves the html being served]

$ curl www.google.com 
$ curl (7) Failed to connect to www.google.com port 80: Connection refused
$ export http_proxy=http://my-proxy:3128
$ curl www.google.com
$ curl: (7) Failed to connect to my-proxy:3128: No route to host

这是怎么回事?

好的,我终于解决了这个问题。

问题是公司代理与默认 docker VM 网桥存在于同一子网中。 (即 172.17.x.x)。

只是一个快速解决方法 - 您可以通过在 docker VM 中更改它来解决此问题。

$ docker-machine ssh mydockervm

$ ifconfig docker0 172.18.0.1 netmask 255.255.0.0

我对同样的问题进行了实验,我使用@dwjohnston 自己的答案来查找问题的原因。

在我的案例中,发生冲突的 docker VM 桥与旧的 docker-compose 的执行有关。

我解决了 运行 :

$ docker network prune 

为了清理网络连接...

奇怪的是,如果 compose 启动的所有容器都已经被修剪,桥仍然是映射事件。

注意:这似乎是一个 "I have the same issue " 答案,但给定的解决方案不同...不同...