我在公司网络上构建Docker镜像时遇到了问题。我刚开始使用Docker,因此我有一个用于hello-world类型应用的Dockerfile:
# DOCKER-VERSION 0.3.4
FROM centos:6.4
# Enable EPEL for Node.js
RUN rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
# Install Node.js and npm
RUN yum install -y npm
# Bundle app source
ADD . /src
# Install app dependencies
RUN cd /src; npm install
EXPOSE 8080
CMD ["node", "/src/index.js"]
当我在家里的无线网络上构建时,这个工作很好。它会下载必要的依赖项并正确地构建镜像。
然而,在我上班时使用公司网络时,这个相同的docker构建失败了,当尝试从download.fedoraproject.org下载RPM时出现以下错误消息:
Step 2 : RUN rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm ---> Running in e0c26afe9ed5 curl: (5) Couldn't resolve proxy 'some.proxy.address' error: skipping http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm - transfer failed
在我的公司网络上,我可以轻松访问该URL。但是一旦Docker尝试构建容器,它突然就无法解析了。对于各种外部资源(apt-get等),这种行为都是相同的:它们在公司网络上的笔记本电脑上都可以正常解析,但Docker无法解析。
我不知道网络知识,无法弄清楚这里发生了什么。有人知道为什么在构建Docker容器时会出现这种奇怪的行为吗?
apt-get update
。 - Matthias Beaupère