【问题标题】:boot2docker: No route to hostboot2docker:没有到主机的路由
【发布时间】:2017-11-07 04:56:05
【问题描述】:

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

我无法让 docker login 或 docker run 工作,所以这是我为调试所做的。

我在虚拟机中创建了一个普通的 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]

在 boot2docker 上:

$ 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

这里发生了什么?

【问题讨论】:

  • @Matt - 不 - no route to host
  • 你运行$(boot2docker shellinit)了吗? (github.com/boot2docker/boot2docker/issues/… 及以下)
  • @VonC - 我没有 boot2docker 作为命令行参数 - 我应该吗?
  • 您应该打开一个 ssh 会话,在该会话中 boot2docker 将被识别
  • @VonC 据我所知-docker-machine 命令就足够了吗? - 是的 - 我正在运行它给我的 env 命令

标签: docker proxy virtualbox boot2docker docker-toolbox


【解决方案1】:

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

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

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

$ docker-machine ssh mydockervm

$ ifconfig docker0 172.18.0.1 netmask 255.255.0.0

【讨论】:

    【解决方案2】:

    我尝试过同样的问题,我使用@dwjohnston 自己的答案来查找问题的原因。

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

    我解决了运行问题:

    $ docker network prune 
    

    为了清理网络连接...

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

    注意:这似乎是一个“我有同样的问题”的答案,但给定的解决方案是不同的......不同的......

    【讨论】:

    • @Nirekin ......你刚刚拯救了我的一天!!!!......当我看到你关于修剪它的评论时,我正要放弃。
    猜你喜欢
    • 2013-01-12
    • 1970-01-01
    • 2019-03-08
    • 2017-08-03
    • 2019-03-08
    • 1970-01-01
    • 2018-02-07
    • 2011-12-15
    相关资源
    最近更新 更多