【发布时间】: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