无法下载码头工人的图像背后的代理无法下载码头工人的图像背后的代理(Cannot download D

2019-05-09 03:58发布

我在我的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工作:

  1. 让你的代理服务器上听0.0.0.0 ,而不是127.0.0.1注意:你需要正确配置防火墙,以防止其恶意访问。

  2. 环回别名添加到lo0接口,例如10.200.10.1/24

     sudo ifconfig lo0 alias 10.200.10.1/24 
  3. 设置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
标签: proxy docker