配置 docker 代理成功 pull 镜像
虽然系统代理设置可以影响一些系统级别的工具和应用,但 Docker 运行在一个隔离的环境中,默认情况下不会继承系统的代理设置。因此,需要显式地为 Docker 配置代理。通过上述步骤配置和验证 Docker 的代理设置,可以确保 Docker 正确通过代理访问网络资源。
0.前言
如果 docker 所在的环境是通过代理服务器和互联网连通的,那么需要配置代理才能让 docker 正常从外网正常拉取镜像。
参考:Docker 配置代理_docker 设置代理-CSDN博客
未配置 docker 代理的情况下,docker pull 报错如下:
wu@WP:~$ docker pull pcl5pcl5/fast_livo2:v2
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. 查看系统代理设置
wu@WP:~$ echo $HTTP_PROXY
http://127.0.0.1:7890/
wu@WP:~$ echo $HTTPS_PROXY
http://127.0.0.1:7890/
wu@WP:~$ echo $NO_PROXY
localhost,127.0.0.0/8,::1
即本机的代理设置为:
HTTP_PROXY=http://127.0.0.1:7890/
HTTPS_PROXY=http://127.0.0.1:7890/
NO_PROXY=localhost,127.0.0.0/8,::1
也可以通过在 ~/.bashrc 中添加以下内容设置代理:
export HTTP_PROXY=http://127.0.0.1:7890/
export HTTPS_PROXY=http://127.0.0.1:7890/
export NO_PROXY=localhost,127.0.0.0/8,::1
2. 配置 Docker 使用代理
①创建或编辑 Docker 配置文件
在 Docker 主机上,编辑或创建 /etc/systemd/system/docker.service.d/http-proxy.conf 文件。
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo gedit /etc/systemd/system/docker.service.d/http-proxy.conf
在文件中添加代理配置:
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890/"
Environment="HTTPS_PROXY=http://127.0.0.1:7890/"
Environment="NO_PROXY=localhost,127.0.0.0/8,::1"
②重新加载系统守护进程并重启 Docker
sudo systemctl daemon-reload
sudo systemctl restart docker
3. 验证 Docker 代理配置
①检查 Docker 信息
你可以运行以下命令来确认 Docker 是否使用了代理设置:
docker info | grep -i proxy
输出为:
wu@WP:~$ docker info | grep -i proxy
HTTP Proxy: http://127.0.0.1:7890/
HTTPS Proxy: http://127.0.0.1:7890/
No Proxy: localhost,127.0.0.0/8,::1
②测试拉取镜像
尝试从 Docker Hub 或其他注册表中拉取镜像,确保代理配置工作正常:
docker pull pcl5pcl5/fast_livo2:v2
拉取成功,输出如下:
wu@WP:~$ docker pull pcl5pcl5/fast_livo2:v2
v2: Pulling from pcl5pcl5/fast_livo2
560c024910be: Pull complete
e541596f8b35: Pull complete
904313c44f3c: Pull complete
92a0710e8ce1: Pull complete
3ab8426a021e: Pull complete
镜像链接如下:https://hub.docker.com/r/pcl5pcl5/fast_livo2
4.总结
虽然系统代理设置可以影响一些系统级别的工具和应用,但 Docker 运行在一个隔离的环境中,默认情况下不会继承系统的代理设置。因此,需要显式地为 Docker 配置代理。通过上述步骤配置和验证 Docker 的代理设置,可以确保 Docker 正确通过代理访问网络资源。
更多推荐
所有评论(0)