在Docker上设置代理

时间:2019-11-13 16:01:57

标签: docker proxy docker-compose docker-pull

我使用centos 7.7和docker 19.03。

我无法拉出图像并得到:

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

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

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,则不能。 我什至重启并再次重新安装。

3 个答案:

答案 0 :(得分:0)

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

[Service]
Enviroment="HTTP_PROXY=http://myproxy"
Enviroment="HTTPS_PROXY=http://myproxy"

答案 1 :(得分:0)

解决了! 我猜是因为我当时正在使用Centos systemctl restart docker并没有真正起作用。

创建文件:

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

输入我添加的内容

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

重新启动守护程序:

systemctl daemon-reload

此重新启动方法有效:

service restart docker

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

答案 2 :(得分:0)

详细介绍了Docker配置为使用代理服务器的latest documentation有助于我构建最新的Docker映像。

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

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