soarli

Docker国内镜像源全挂?教你给Docker配置HTTP代理解决拉取超时
前言:当“换源”不再有效最近很多同学在部署开源项目(如 DeepSeek-R1、Open WebUI)时,都被卡在...
扫描右侧二维码阅读全文
29
2026/01

Docker国内镜像源全挂?教你给Docker配置HTTP代理解决拉取超时

前言:当“换源”不再有效

最近很多同学在部署开源项目(如 DeepSeek-R1、Open WebUI)时,都被卡在了第一步:镜像拉取失败

以往遇到 Time out,我们第一反应是“换个国内镜像源”(如阿里云、网易、道客云等)。但近期的情况大家也都清楚,国内大厂的 Docker 镜像源大多处于不可用或极其不稳定的状态。

如果你在日志中看到了类似下面的报错:

Error failed to resolve reference "docker.io/...": dial tcp 173.252.88.133:443: i/o timeout

且更换了镜像源依然无效,那么配置 Docker 守护进程(Daemon)走代理是目前唯一稳健的解决方案。

本文将演示如何在 Linux 环境下(适用于 CentOS/Ubuntu/Debian 及宝塔面板环境)为 Docker 配置全局代理。


误区提示

很多同学以为在终端执行 export http_proxy=... 就能让 Docker 走代理。

这是无效的!

因为 docker pull 的动作是由后台的 dockerd 守护进程执行的,终端的环境变量影响不到系统服务。我们需要修改 Systemd 的配置。


操作步骤

假设你的代理服务地址为:172.30.1.12:6310

(请根据你实际的局域网代理 IP 或本机代理端口修改此地址)

1. 创建 Docker 配置目录

Systemd 允许我们通过创建 .d 目录来覆盖或追加服务的默认配置,而无需修改主服务文件。

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

2. 创建代理配置文件

在该目录下新建一个 http-proxy.conf 文件:

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

(如果你不习惯用 vim,也可以使用 nano 或者在宝塔面板的文件管理器中直接新建编辑)

3. 写入配置内容(核心)

将以下内容复制并粘贴到文件中。

注意:

  • 请将 172.30.1.12:6310 替换为你自己的代理地址。
  • NO_PROXY 非常关键!它确保容器内部通信、本地回环地址不走代理。如果缺少这一行,可能会导致容器启动后连不上本地数据库。
[Service]
# HTTP 代理
Environment="HTTP_PROXY=http://172.30.1.12:6310"
# HTTPS 代理 (通常与 HTTP 保持一致即可)
Environment="HTTPS_PROXY=http://172.30.1.12:6310"
# 不走代理的地址 (重要!)
Environment="NO_PROXY=localhost,127.0.0.1,::1,.local,172.16.0.0/12,10.0.0.0/8,192.168.0.0/16"

补充说明: 如果你的代理有账号密码,格式为:http://username:password@ip:port

4. 重载配置并重启 Docker

保存文件后,需要通知 Systemd 重新加载配置,并重启 Docker 服务使更改生效。

# 1. 重载守护进程配置
sudo systemctl daemon-reload

# 2. 重启 Docker
sudo systemctl restart docker

验证配置

配置完成后,怎么确认 Docker 真的挂上代理了呢?

执行以下命令:

docker info | grep -i proxy

如果输出类似下方内容,说明配置成功:

 HTTP Proxy: http://172.30.1.12:6310
 HTTPS Proxy: http://172.30.1.12:6310
 No Proxy: localhost,127.0.0.1,::1,.local...

效果测试

现在,你可以回到命令行或宝塔面板中,重新尝试拉取刚才失败的镜像:

docker pull dyrnq/open-webui:main

你会发现之前的 i/o timeout 消失了,进度条开始转动。

总结

在当前的网络环境下,为服务器配置一个稳定的出海代理是部署海外开源项目的必备技能。通过修改 systemd 配置,我们可以从根本上解决 Docker 拉取镜像超时的问题,彻底告别频繁寻找可用镜像源的烦恼。

希望这篇笔记能帮你节省排坑的时间!🚀

最后修改:2026 年 01 月 29 日 12 : 42 AM

发表评论