Docker 拉取配置教程:解决镜像拉取连接超时问题

Docker 拉取配置教程:解决镜像拉取连接超时问题

bash 复制代码
docker pull vllm/vllm-openai: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)

一、配置 Docker 通过代理服务器拉取镜像

1. 创建并配置代理配置文件

Docker 服务使用 systemd 管理,若需通过 HTTP 代理拉取镜像,需创建或修改配置文件:

bash 复制代码
sudo mkdir -p /etc/systemd/system/docker.service.d

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

文件内容如下:

ini 复制代码
[Service]
Environment="HTTP_PROXY=http://proxyclient:xxx@xxx1:8080"
Environment="HTTPS_PROXY=http://proxyclient:xxx@xxx:8080"
Environment="NO_PROXY=localhost,127.0.0.1,.example.com"

说明:

  • HTTP_PROXYHTTPS_PROXY:设置代理服务器地址及认证信息;
  • NO_PROXY:设置不走代理的地址列表,逗号分隔,支持 IP、域名、通配符。

2. 重载配置并重启 Docker 服务

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl restart docker

⚠️ 注意:修改完代理配置后,必须执行 daemon-reload,否则配置不会生效。


二、验证代理配置是否生效

1. 检查环境变量是否加载

bash 复制代码
systemctl show --property Environment docker

输出示例:

复制代码
Environment=HTTP_PROXY=http://proxyclient:xxx@xxx:8080 
HTTPS_PROXY=http://proxyclient:xxx@xxx:8080 NO_PROXY=localhost,127.0.0.1,.example.com

2. 使用 docker info 查看代理设置

bash 复制代码
docker info | grep Proxy

输出示例:

复制代码
HTTP Proxy: http://xxxxx:xxxxx@xxx:8080
HTTPS Proxy: http://xxxxx:xxxxx@xxx:8080
No Proxy: localhost,127.0.0.1,.example.com

三、配置 Docker 镜像加速器

1. 修改 Docker 守护进程配置文件

bash 复制代码
sudo vim /etc/docker/daemon.json

添加镜像加速器地址(如阿里云):

json 复制代码
{
  "registry-mirrors": ["https://qrdh9sev.mirror.aliyuncs.com"],
  "runtimes": {
    "nvidia": {
      "args": [],
      "path": "nvidia-container-runtime"
    }
  }
}

or

json 复制代码
{
    "runtimes": {
        "nvidia": {
            "args": [],
            "path": "nvidia-container-runtime"
        }
    },
     "registry-mirrors": [
       "https://docker.xuanyuan.me",
       "https://docker.1ms.run",
       "https://pee6w651.mirror.aliyuncs.com",
       "https://registry.docker-cn.com",
       "https://do.nark.eu.org",
        "https://dc.j8.work",
        "https://docker.m.daocloud.io",
        "https://dockerproxy.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://docker.nju.edu.cn",
        "https://hub-mirror.c.163.com",
        "https://mirror.baidubce.com",
        "https://ml91x5p1.mirror.aliyuncs.com"
  ]
}

说明:

  • registry-mirrors:设置 Docker Hub 的镜像加速地址;
  • 可根据实际使用的服务提供商替换为其他加速地址。

2. 重启 Docker 服务

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl restart docker

四、测试

bash 复制代码
docker pull vllm/vllm-openai:latest

latest: Pulling from vllm/vllm-openai

8f84a9f2102e: Pulling fs layer 
b95112eaf283: Pulling fs layer 
030ef8250936: Pulling fs layer 
72ac9ccfda38: Waiting 
73389fbd088f: Pull complete 
0264850675f7: Pull complete 
de1d03310308: Pull complete 

78b596bcad08: Waiting 
6a16eaeb9de9: Waiting 
latest: Pulling from vllm/vllm-openai
8f84a9f2102e: Pulling fs layer 
b95112eaf283: Pulling fs layer 
030ef8250936: Pulling fs layer 
72ac9ccfda38: Pulling fs layer 
73389fbd088f: Pull complete 

78b596bcad08: Pull complete 
6a16eaeb9de9: Pull complete 
Digest: sha256:014a95f21c9edf6abe0aea6b07353f96baa4ec291c427bb1176dc7c93a85845c
Status: Downloaded newer image for vllm/vllm-openai:latest
docker.io/vllm/vllm-openai:latest

五、排查 Docker 连接问题的基本步骤

1. 检查 Docker 守护进程状态

bash 复制代码
systemctl status docker

若服务未运行,尝试重启:

bash 复制代码
sudo systemctl start docker

2. 查看 Docker 日志

bash 复制代码
journalctl -u docker.service -n 100

或:

bash 复制代码
sudo docker info

查找类似错误信息:

复制代码
Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection

3. 确认网络设置

  • 确认服务器可访问 https://registry-1.docker.io
  • 检查 DNS 解析是否正常;
  • 使用 curl 测试代理:
bash 复制代码
curl -x http://proxyclient:xxx@xxx:8080 https://registry-1.docker.io/v2/

4. 检查 Docker 配置文件语法

bash 复制代码
sudo dockerd --test --config-file /etc/docker/daemon.json

若报错,说明配置文件语法错误。


六、总结与建议

问题 解决方案
Docker 拉取超时 检查代理配置、镜像加速器、网络连接
Docker 守护进程异常 检查日志、重启服务、验证配置
vllm 拉取失败 确认镜像地址、标签是否正确;尝试使用代理或镜像加速器
Docker 无法连接 检查 docker.sock 权限、守护进程状态

建议:

  • 使用镜像加速器 + 代理配置双保险;
  • 大镜像建议在夜间或低峰期拉取;
  • 定期检查 Docker 配置文件与服务状态。

七、进一步排查命令

bash 复制代码
systemctl status docker
journalctl -u docker.service -b

如需进一步优化或排查问题,可结合 journalctl -xe 查看详细日志。

相关推荐
一技安身5 分钟前
【信创】docker-26.0.2.tgz 原理 + 完整安装
linux·运维·服务器
Dachui_112230 分钟前
内网穿透 Webhook 告警实战:客户端离线、应用探测、资源删除全覆盖
运维·远程工作·内网穿透·devops·webhook·服务器监控·应用探测
数据智研37 分钟前
【数据分享】300个城市-5G试点城市DID数据(2014-2025)
大数据·运维·人工智能·信息可视化·数据分析
honsor39 分钟前
工业级网口温湿度变送器 ModbusTCP 机房动环环境监测终端
运维·网络·人工智能·物联网·安全·云计算·智能温湿度监测系统
fengkai45451 小时前
八、Docker详解1-3
运维·docker·容器
流浪0012 小时前
Linux系统篇34——信号(六):信号处理期间又来了怎么办?——sigaction、sa_mask、可重入函数与 volatile
linux·运维·面试·操作系统·信号处理·信号
学烹饪的小胡桃2 小时前
资产设备管理系统 WGFIX 怎么设置https访问
linux·运维·服务器·网络·安全
一技安身2 小时前
【信创】银河麒麟V10(ARM64,无GPU纯CPU)内网隔离离线部署Deepseek+openWebUI完整方案
docker
志栋智能3 小时前
超自动化巡检如何生成“有灵魂”的运维报告?
大数据·运维·人工智能·架构·自动化
凌风的跨境分享3 小时前
Temu运营避坑指南:制造地点信息填写合规要点与批量优化方法
运维·服务器·人工智能