【问题标题】:No route to host error while Building Docker Image using Dockerfile使用 Dockerfile 构建 Docker 映像时没有路由到主机错误
【发布时间】:2018-07-12 12:57:02
【问题描述】:

我正在尝试在我的dockerfile 中运行以下命令来下载熊猫包

RUN curl -x proxy.temp.com:8080 -U myid_9076:pwd123* -L -O https://files.pythonhosted.org/packages/b4/31/bbd2c915aad67c7cb572b7c6ca8f645fcb112064ef6774436d4f65acd5a1/pandas-0.20.3-cp27-cp27m-manylinux1_x86_64.whl  

但是在使用相同的dockerfile 构建docker-image 时出现以下错误:

---> Running in c8ddcdcdb155
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:02 --:--:--     0curl: (7) Failed to connect to proxy.temp.com port 8080: No route to host

相同的命令在安装了 docker 的裸机节点上运行并下载包。但是在构建 docker-image 时,它​​给出了上述错误。什么问题,我如何下载我的图像所需的这个包?

还尝试在下载pandas包之前在我的dockerfile中设置环境变量,如下所示,

ENV http_proxy 'http://myid_9076:pwd123*@proxy.temp.com:8080/'
ENV https_proxy 'http://myid_9076:pwd123*@proxy.temp.com:8080/'

但在这种情况下也会出现同样的错误。

【问题讨论】:

  • 这不是你的proxy.temp.com域是你本地hosts文件中的一些记录吗?
  • @ttomalak DNS 包含在裸机上的 /etc/resolv.conf 文件中。但是在构建 docker 镜像时是否需要在 dockerfile 命令中的任何位置包含此文件?
  • 我的意思更像是/etc/hosts 但如果您使用一些自定义 dns 服务器,您可能应该映射您的 resolv.conf 文件。 Docker 不会自动使用您的任何自定义主机配置,因此您应该明确映射此地址
  • 进入docker,ping stackoverflow.com确认是否真的是dns问题。 ping proxy.temp.com 看看这是否真的是您的自定义 dns 问题。
  • 您可以尝试将{"dns":["10.192.130.201"]} 添加到/etc/docker/daemon.json 并重新启动docker daemon 吗? ip 是你的 dns ip。

标签: docker docker-compose dockerfile docker-machine


【解决方案1】:

这是网络冲突问题,我的网络与 docker 网络冲突。所以我在/etc/docker/daemon.json中设置了参数"bip"如下所示

{
    "bip" : "12.12.0.1/24"
}

从链接Unable to access local network IP from docker container得到答案

【讨论】:

    猜你喜欢
    • 2018-04-23
    • 2020-10-17
    • 1970-01-01
    • 2018-08-05
    • 1970-01-01
    • 2016-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多