3

我使用 centos 7.7 和 docker 19.03。

我无法提取图像并获得:

Error response from daemon: Get https://registry-1.docker.io.v2./: dial tcp lookup : server misbehaving

我做了谷歌上所有指南的建议:

cat /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Enviroment="HTTP_PROXY=http://myproxy"

systemctl deamon reload
systemctl restart docker

什么也没发生。如果我回显 $http_proxy 我会看到我的设置。

更多设置:/etc/enviroment

http_proxy=http://myproxy
https_proxy=https://myproxy

代理设置曾经工作并且正在另一台服务器上工作。在这台服务器上,我删除了 docker 旧版本:

docker-1.13.1
docker-common-1.13.1
docker-client-1.13.1

使用较旧的 docker 似乎可以工作,但使用 docker-ce 则不能。我什至重新启动并重新安装。

4

3 回答 3

6

解决了!我猜是因为我使用的是 Centos,所以并 systemctl restart docker没有真正奏效。

创建目录:

mkdir -p /etc/systemd/system/docker.service.d

创建文件:

nano /etc/systemd/system/docker.service.d/http-proxy.conf

添加以下行:

[Service]
Environment="HTTP_PROXY=http://proxy.example.com:80/"

重启守护进程:

systemctl daemon-reload

这种重启方法有效:

service docker restart

然后它接受了所有的环境变量

于 2019-11-18T09:38:49.707 回答
0

详细说明 Docker 以使用代理服务器的配置的最新文档为我构建了我最新的 docker 映像。

  • 对于最新的 docker 客户端 (>= v17.07) 创建或编辑文件 ~/.docker/config.json

  • 对于较旧的 docker 客户端(<= v17.06),请使用 --env 标志相应地设置代理

于 2020-11-30T07:30:36.447 回答
0

设置这两个变量,它们都可以设置为您的 http 服务器。该变量用于被代理的流量类型,而不是代理服务器的协议:

[Service]
Enviroment="HTTP_PROXY=http://myproxy"
Enviroment="HTTPS_PROXY=http://myproxy"
于 2019-11-15T10:47:44.407 回答