You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

代理环境下配置Docker客户端后仍无法拉取镜像如何解决?

Docker代理环境下拉取镜像失败的解决建议

首先核心误区说明:你配置的~/.docker/config.json属于Docker客户端代理,仅作用于docker命令本身的请求、以及运行容器时注入到容器内部的默认代理,不控制Docker守护进程(dockerd)拉取镜像的网络请求,这是绝大多数配置后不生效的原因。

正确配置Docker守护进程代理步骤

  • 第一步:创建systemd drop-in配置目录
sudo mkdir -p /etc/systemd/system/docker.service.d
  • 第二步:新建代理配置文件/etc/systemd/system/docker.service.d/http-proxy.conf,写入如下内容:
[Service]
Environment="HTTP_PROXY=http://替换为你的代理地址:端口"
Environment="HTTPS_PROXY=http://替换为你的代理地址:端口"
# 配置不需要走代理的地址,可根据实际需求调整
Environment="NO_PROXY=localhost,127.0.0.1,私有镜像仓库地址"
  • 第三步:重载systemd配置并重启Docker
sudo systemctl daemon-reload
sudo systemctl restart docker
  • 第四步:验证配置是否生效
sudo systemctl show --property=Environment docker

如果输出内容中包含你配置的代理环境变量,说明守护进程代理配置成功。

其他排查点

  • 检查代理地址格式是否正确:必须携带协议头(http/https/socks5)和端口,需要身份认证的代理要将用户名密码拼接在地址内,格式为http://用户名:密码@代理地址:端口
  • 验证sudo环境的环境变量是否生效:你配置的$DOCKER_CONFIG默认不会被sudo继承,可执行sudo echo $DOCKER_CONFIG确认是否有输出,无输出的话需要在sudoers配置中保留该变量,或者直接给root用户的/root/.docker/config.json也配置相同的代理规则
  • 检查NO_PROXY规则是否误包含了你要拉取的镜像仓库地址,若存在需要移除对应规则
  • 如果使用socks5代理,确认当前Docker版本支持socks5协议,低于18.09的旧版本需要额外升级适配

内容的提问来源于stack exchange,提问作者emilie zawadzki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 09:24:01