我在我的Ubuntu 13.10(莽撞的火蜥蜴)安装泊坞窗,当我在控制台输入:
sudo docker pull busybox
我得到以下错误:
Pulling repository busybox
2014/04/16 09:37:07 Get https://index.docker.io/v1/repositories/busybox/images: dial tcp: lookup index.docker.io on 127.0.1.1:53: no answer from server
码头工人的版本:
$ sudo docker version
Client version: 0.10.0
Client API version: 1.10
Go version (client): go1.2.1
Git commit (client): dc9c28f
Server version: 0.10.0
Server API version: 1.10
Git commit (server): dc9c28f
Go version (server): go1.2.1
Last stable version: 0.10.0
我身后没有身份验证的代理服务器,这是我/etc/apt/apt.conf
的文件:
Acquire::http::proxy "http://192.168.1.1:3128/";
Acquire::https::proxy "https://192.168.1.1:3128/";
Acquire::ftp::proxy "ftp://192.168.1.1:3128/";
Acquire::socks::proxy "socks://192.168.1.1:3128/";
我究竟做错了什么?
Answer 1:
下面是官方多克尔文档的链接进行代理HTTP: https://docs.docker.com/config/daemon/systemd/#httphttps-proxy
快速概要:
首先,创建一个systemd投递的码头工人服务目录:
mkdir /etc/systemd/system/docker.service.d
现在创建一个名为/etc/systemd/system/docker.service.d/http-proxy.conf
,增加了HTTP_PROXY
环境变量:
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:80/"
如果您有需要,而不进行代理,你可以通过指定他们联系内部多克尔登记NO_PROXY
环境变量:
Environment="HTTP_PROXY=http://proxy.example.com:80/"
Environment="NO_PROXY=localhost,127.0.0.0/8,docker-registry.somecorporation.com"
同花顺的变化:
$ sudo systemctl daemon-reload
验证配置已经加载:
$ sudo systemctl show --property Environment docker
Environment=HTTP_PROXY=http://proxy.example.com:80/
重新启动泊坞窗:
$ sudo systemctl restart docker
Answer 2:
你的APT代理设置不相关的码头工人。
多克尔使用HTTP_PROXY环境变量如果存在的话,例如:
sudo HTTP_PROXY=http://192.168.1.1:3128/ docker pull busybox
但是,相反,我建议你看一下你/etc/default/docker
的配置文件:你应该有一个行取消注释(也许调整),以获得自动应用于您的代理设置。 然后,重新启动服务器泊坞窗:
service docker restart
Answer 3:
在CentOS的泊坞窗的配置文件是:
/etc/sysconfig/docker
添加下面的行帮我拿到多克尔守护代理服务器之后的工作:
HTTP_PROXY="http://<proxy_host>:<proxy_port>"
HTTPS_PROXY="http://<proxy_host>:<proxy_port>"
Answer 4:
在Ubuntu上你需要设置HTTP_PROXY为多克尔守护程序,而不是客户端程序。 这是在做/etc/default/docker
(见这里 )。
Answer 5:
如果您使用的Mac新的泊坞 (或码头适用于Windows),只需右键单击泊坞窗托盘图标并选择首选项 (Windows:设置),然后转到高级,代理下有指定代理设置。 单击应用,重新启动并等到码头工人重新启动。
Answer 6:
为了扩大上述阿伦的回答,这在CentOS的7工作,我不得不删除“导出”命令。 所以编辑
/etc/sysconfig/docker
并添加:
HTTP_PROXY="http://<proxy_host>:<proxy_port>"
HTTPS_PROXY="https://<proxy_host>:<proxy_port>"
http_proxy="${HTTP_PROXY}"
https_proxy="${HTTPS_PROXY}"
然后,重新启动泊坞窗:
sudo service docker restart
该源是这个博客帖子 。
Answer 7:
为什么本地绑定代理不起作用
问题
如果你正在运行一个本地绑定的代理,如监听127.0.0.1:8989
,它不会在泊坞工作的Mac。 从码头工人的文档 :
我想从一个容器连接到服务的主机上
Mac也有一个不断变化的IP地址(或根本没有,如果你没有网络访问)。 我们目前的建议是一个未使用的IP连接到lo0
Mac上的接口; 例如: sudo ifconfig lo0 alias 10.200.10.1/24
,并确保您的服务在该地址或听0.0.0.0
(即不127.0.0.1
)。 然后容器可以连接到这个地址。
类似的是泊坞服务器端。 (要了解服务器端和码头工人的客户端,尝试运行docker version
。)和服务器端有它自己的一个虚拟层上运行的localhost
。 因此,将无法连接到代理服务器上的localhost
的主机操作系统。
解决方案
所以,如果你使用像我这样的本地绑定代理,基本上你就必须做以下事情,使其与码头工人为Mac工作:
让你的代理服务器上听0.0.0.0
,而不是127.0.0.1
。 注意:你需要正确配置防火墙,以防止其恶意访问。
环回别名添加到lo0
接口,例如10.200.10.1/24
:
sudo ifconfig lo0 alias 10.200.10.1/24
设置HTTP和/或HTTPS代理10.200.10.1:8989
从码头工人托盘菜单中选择偏好 (假设代理服务器侦听端口8989
)。
在此之后,由来自未下载的图像的新容器中运行命令测试代理设置:
$ docker rmi -f hello-world
...
$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c04b14da8d14: Pull complete
Digest: sha256:0256e8a36e2070f7bf2d0b0763dbabdd67798512411de4cdcf9431a1feb60fd9
Status: Downloaded newer image for hello-world:latest
...
注意:通过设置环回别名ifconfig
重新启动后不保留。 为了使持续的是另一个话题。 请查看本博客文章在日本(谷歌翻译可以帮助)。
Answer 8:
这是为我工作的修补程序:Ubuntu的,多克尔版本:1.6.2
在文件/etc/default/docker
,添加一行:
export http_proxy='http://<host>:<port>'
重新启动泊坞窗
sudo service docker restart
Answer 9:
要配置码头工人与代理工作,你需要到HTTPS_PROXY / HTTP_PROXY环境变量添加到多克尔SYSCONFIG文件( /etc/sysconfig/docker
)。
根据如果你使用init.d
或者你需要添加“出口”语句的服务工具(由于Debian错误报告日志- #767441在/ etc /默认/泊坞窗被误导有关支持的语法的例子。 ):
HTTPS_PROXY="https://<user>:<password>@<proxy-host>:<proxy-port>"
HTTP_PROXY="https://<user>:<password>@<proxy-host>:<proxy-port>"
export HTTP_PROXY="https://<user>:<password>@<proxy-host>:<proxy-port>"
export HTTPS_PROXY="https://<user>:<password>@<proxy-host>:<proxy-port>"
泊坞窗库(泊坞中心)仅支持HTTPS。 为了让泊坞窗与SSL拦截代理工作,你必须将代理根证书添加到系统信任存储。
为CentOS,将文件复制到/etc/pki/ca-trust/source/anchors/
和更新CA信任存储,然后重新启动泊坞窗服务。
如果您的代理使用NTLMv2身份验证-你需要使用中间代理像Cntlm弥合认证。 本博客文章解释得很详细 。
Answer 10:
安装多克尔后,执行以下操作:
[mdesales@pppdc9prd1vq ~]$ sudo HTTP_PROXY=http://proxy02.ie.xyz.net:80 ./docker -d &
[2] 20880
然后,你可以拉或做任何事情:
mdesales@pppdc9prd1vq ~]$ sudo docker pull base
2014/04/11 00:46:02 POST /v1.10/images/create?fromImage=base&tag=
[/var/lib/docker|aa088847] +job pull(base, )
Pulling repository base
b750fe79269d: Download complete
27cf78414709: Download complete
[/var/lib/docker|aa088847] -job pull(base, ) = OK (0)
Answer 11:
在码头工人, 码头工人引擎 ,在一个systemd基于分布在新版本中,你应该添加的环境变量线/lib/systemd/system/docker.service,因为它是由其他人所说:
Environment="HTTP_PROXY=http://hostname_or_ip:port/"
Answer 12:
为了解决在泊坞构建卷曲的问题,我添加了Dockerfile内的以下内容:
ENV http_proxy=http://infoprx2:8080
ENV https_proxy=http://infoprx2:8080
RUN apt-get update && apt-get install -y curl vim
请注意,ENV语句之前运行的语句。
而为了使泊坞窗守护程序能够访问Internet(我用Kitematic与boot2docker),我增加了以下内容/var/lib/boot2docker/profile
:
export HTTP_PROXY=http://infoprx2:8080
export HTTPS_PROXY=http://infoprx2:8080
然后我重新启动泊坞窗与sudo /etc/init.d/docker restart
。
Answer 13:
也许你需要设置小写的变量。 就我而言,我的/etc/systemd/system/docker.service.d/http-proxy.conf文件是这个样子:
[Service]
Environment="ftp_proxy=http://<user>:<password>@<proxy_ip>:<proxy_port>/"
Environment="http_proxy=http://<user>:<password>@<proxy_ip>:<proxy_port>/"
Environment="https_proxy=http://<user>:<password>@<proxy_ip>:<proxy_port>/"
祝好运! :)
Answer 14:
只要设置代理环境变量并没有帮助我在1.0.1版本......我不得不更新/etc/default/docker.io
用的“HTTP_PROXY”变量的正确值的文件。
Answer 15:
如果使用socks5代理,这是我与码头工人17.03.1-CE测试与设置“ALL_PROXY”,和它的工作:
# Set up socks5 proxy server
ssh sshUser@proxyServer -C -N -g -D \
proxyServerIp:9999 \
-o ExitOnForwardFailure=yes \
-o ServerAliveInterval=60
# Configure dockerd and restart.
# NOTICE: using "all_proxy"
mkdir -p /etc/systemd/system/docker.service.d
cat > /etc/systemd/system/docker.service.d/http-proxy.conf <<EOF
[Service]
Environment="all_proxy=socks5://proxyServerIp:9999"
Environment="NO_PROXY=localhost,127.0.0.1,private.docker.registry.com"
EOF
systemctl daemon-reload
systemctl restart docker
# Test whether can pull images
docker run -it --rm alpine:3.5
Answer 16:
如果您在Ubuntu是,执行这些命令添加到您的代理。
sudo nano /etc/default/docker
并取消对指定线路
#export http_proxy = http://username:password@10.0.1.150:8050
并与您的适当的代理服务器和用户名替换它。
然后,重新启动使用泊坞窗:
service docker restart
现在你可以运行背后的代理泊坞窗命令:
docker search ubuntu
Answer 17:
如果你是在Ubuntu,你应该执行这个命令:
export https_proxy=http://your_name:password@ip_proxy:port docker
并重新加载泊坞窗有:
service docker.io restart
或者去/etc/docker.io
纳米...
Answer 18:
正如我不允许尚未就此发表评论:
为CentOS 7我需要像它在这里描述激活EnvironmentFile内“docker.service”: 控制与systemd配置泊坞窗 。
编辑:我将我的解决方案,通过Nilesh制作出规定。 我需要打开“/etc/systemd/system/docker.service”,我不得不一节中添加
[服务]
EnvironmentFile = - 的/ etc / SYSCONFIG /搬运工
只有这样,是装在我的系统文件“等/ SYSCONFIG /泊坞窗”。
Answer 19:
在Ubuntu 14.04(忠实的塔尔羊)与泊坞1.9.1,我只是注释掉了http_proxy
线,更新了值,然后重新启动泊坞窗服务。
export http_proxy="http://proxy.server.com:80"
然后
service docker restart
Answer 20:
在RHEL6.6仅此工作(请注意使用的export
):
的/ etc / SYSCONFIG /搬运工
export http_proxy="http://myproxy.example.com:8080"
export https_proxy="http://myproxy.example.com:8080"
注:两者都可以使用http
协议)。
由于https://crondev.com/running-docker-behind-proxy/
Answer 21:
在我的网络,Ubuntu的作品背后企业ISA代理服务器。 它需要验证。 我试过上述所有解决方案,并没有任何帮助。 真正帮助是写在文件中的代理线/etc/systemd/system/docker.service.d/https-proxy.conf
没有一个域名。
代替
Environment="HTTP_PROXY=http://user@domain:password@proxy:8080"
要么
Environment="HTTP_PROXY=http://domain\user:password@proxy:8080"
和其他一些替换如@ -> %40
或\ -> \\
我试图使用
Environment="HTTP_PROXY=http://user:password@proxy:8080"
而现在它工作。
Answer 22:
试试这个:
sudo HTTP_PROXY=http://<IP address of proxy server:port> docker -d &
Answer 23:
我当时也面临防火墙后面的同样的问题。 请按照以下步骤进行:
$ sudo vim /etc/systemd/system/docker.service.d/http_proxy.conf
[Service]
Environment="HTTP_PROXY=http://username:password@IP:port/"
不要使用或删除https_prxoy.conf文件。
重新加载并重新启动泊坞窗
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
$ docker pull hello-world
Using default tag: latest
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:2557*********************************8
Status: Downloaded newer image for hello-world:latest
文章来源: Cannot download Docker images behind a proxy