我正在尝试在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
知道我在这里缺少什么吗?
答案 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
申请代理。