在EC2实例上使用代理后面的代理

时间:2013-10-06 15:34:46

标签: proxy amazon-ec2 docker

我正在尝试在EC2 VM实例中运行docker。该实例位于http代理后面。 据我所知,码头安装没问题。

这是实例信息

Linux ip-X-X-X-X 3.8.0-31-generic #46~precise1-Ubuntu SMP Wed Sep 11 18:21:16 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

Docker版本我是

Docker version 0.6.3, build b0a49a3

当我尝试运行一个简单的docker命令时,它会挂起很长时间。

$sudo docker run -i -t ubuntu /bin/bash
Unable to find image 'ubuntu' (tag: latest) locally
Pulling repository ubuntu

我觉得这与我的HTTP代理设置有关。

我尝试以不同的方式设置代理。

例如,基于this,我尝试过,但它仍无效。

$sudo HTTP_PROXY=http://proxy.xyz.com:8080 docker run -i -t ubuntu /bin/bash
Unable to find image 'ubuntu' (tag: latest) locally
Pulling repository ubuntu

知道我在这里缺少什么吗?

3 个答案:

答案 0 :(得分:3)

在Amazon Linux上,在/etc/sysconfig/docker

中附加代理变量
export no_proxy='localhost,127.0.0.0/8'
export NO_PROXY='localhost,127.0.0.0/8'
export http_proxy=http://<YOUR_PROXY>:<PROXY_PORT>/
export HTTPS_PROXY=http://<YOUR_PROXY>:<PROXY_PORT>/
export https_proxy=http://<YOUR_PROXY>:<PROXY_PORT>/
export HTTP_PROXY=http://<YOUR_PROXY>:<PROXY_PORT>/

然后重新启动docker守护程序 service docker restart

答案 1 :(得分:2)

您需要使用HTTP_PROXY环境变量运行Docker守护程序,因为通过守护程序提取图像。如果您使用的是Ubuntu,可以通过修改/etc/init/docker.conf来完成。

更新

我们现在也正确支持/etc/default/docker,因此现在(在Ubuntu和Debian上)实现此目的的最佳方式是export http_proxy=...内的/etc/default/docker

答案 2 :(得分:0)

添加到tianon的答案是在修改配置文件后不要忘记重新启动docker守护程序:

sudo service docker restart

申请代理。