一文详解如何配置docker通过代理服务器拉取镜像
前言
如果 docker 所在的环境是通过代理服务器和互联网连通的,那么需要一番配置才能让 docker 正常从外网正常拉取镜像。然而仅仅通过配置环境变量的方法是不够的。本文结合已有文档,介绍如何配置代理服务器能使docker正常拉取镜像。
本文使用的docker 版本是
docker --version Docker version 25.0.1, build cb74dfc
问题现象
如果不配置代理服务器就直接拉镜像,docker 会直接尝试连接镜像仓库,并且连接超时报错。如下所示:
$ docker pull busybox Using default tag: latest Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
1、创建 dockerd 相关的 systemd 目录,这个目录下的配置将覆盖 dockerd 的默认配置
$ sudo mkdir -p /etc/systemd/system/docker.service.d
新建配置文件 /etc/systemd/system/docker.service.d/http-proxy.conf
,这个文件中将包含环境变量
[Service] Environment="HTTP_PROXY=http://proxy.example.com:80" Environment="HTTPS_PROXY=https://proxy.example.com:443"
如果你自己建了私有的镜像仓库,需要 dockerd 绕过代理服务器直连,那么配置 NO_PROXY 变量:
[Service] Environment="HTTP_PROXY=http://proxy.example.com:80" Environment="HTTPS_PROXY=https://proxy.example.com:443" Environment="NO_PROXY=your-registry.com,10.10.10.10,*.example.com"
多个 NO_PROXY
变量的值用逗号分隔,而且可以使用通配符(*),极端情况下,如果 NO_PROXY=*
,那么所有请求都将不通过代理服务器。
2、重新加载配置文件,重启 dockerd
$ sudo systemctl daemon-reload $ sudo systemctl restart docker
3、检查确认环境变量已经正确配置:
$ sudo systemctl show --property=Environment docker
从 docker info 的结果中查看配置项。
这样配置后,应该可以正常拉取 docker 镜像。
总结
到此这篇关于如何配置docker通过代理服务器拉取镜像的文章就介绍到这了,更多相关docker通过代理服务器拉取镜像内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
最新评论