Docker-machine:在映像中下载软件包:错误:1解决失败

我在代理之后创build了一个docker机器。 首先,我不能拉图像。 我已经重新创build了该机器:

docker-machine create -d virtualbox \ --engine-env HTTP_PROXY=http://xx:8080/ \ --engine-env HTTPS_PROXY=http://xx:8080/ \ docker-machine 

现在,我可以拉图像,启动容器,但问题是当我尝试使用Dockerfile创build自己的图像时:

Dockerfile:

 FROM ubuntu RUN apt-get -y update 

错误:

 Step 2/2 : RUN apt-get -y update ---> Running in 31050162ef49 Err:1 http://security.ubuntu.com/ubuntu xenial-security InRelease Temporary failure resolving 'security.ubuntu.com' Err:2 http://archive.ubuntu.com/ubuntu xenial InRelease Temporary failure resolving 'archive.ubuntu.com' 

我的代理设置已设置。 我也试图把它们放在我的Dockerfile中,但是它一直在失败。 哪里不对?

您可以尝试将代理设置作为parameter passing给build命令:

 docker build --build-arg http_proxy="http://xx:8080/" --build-arg https_proxy="http://xx:8080/" ... 

一般来说,我会build议安装一个工具来透明地将所有stream量从机器路由到http代理。 这将消除configuration所有工具在代理之后运行的所有痛苦。

对于Linux,您可以使用Redsocks 。 Dockerhub上也有Docker镜像来安装它:)。

对于Windows或MAC,您可以使用ProxyCap 。