当前位置: 首页 > news >正文

Docker 拉取镜像超时问题排查与解决实录

在使用 Docker 的过程中,很多人都会遇到一个令人头疼的问题——无法拉取镜像,报错 i/o timeout。本文将以我的一次真实排查经历为例,详细记录从问题出现到最终解决的全过程。

一、问题背景

我在一台云服务器(Ubuntu 系统)上安装了 Docker,并尝试执行:docker search nginx

结果报错如下:

Error response from daemon: Get "https://index.docker.io/v1/search?q=nginx&n=25": dial tcp 45.114.11.238:443: i/o timeout

这意味着 Docker 无法访问 Docker Hub(index.docker.io),也就是网络层面出了问题。

二、初步分析:可能的原因

出现 i/o timeout 的常见原因包括:

1、外部网络访问受限

1)服务器所在网络(如云主机)无法访问外网。

2)云服务商安全组或防火墙阻止了 443 端口出站。

2、Docker Daemon 代理配置错误

Docker Daemon 使用了错误的代理,导致请求被阻断。

3、DNS 解析问题

/etc/resolv.conf 配置异常,导致域名无法解析。

4、官方镜像源访问慢

Docker Hub 在国内访问速度极慢或被墙

三、排查步骤

1️⃣ 查看 Docker 网络配置

执行:docker network inspect bridge

输出结果中 Subnet 为 172.17.0.0/16,Gateway 为 172.17.0.1,配置正常,说明 Docker 内部网络没有问题。

2️⃣ 检查 Docker 环境变量(代理配置)

执行:systemctl show --property=Environment docker

结果为空:Environment=

说明当前 Docker 没有启用任何代理。排除代理配置错误的可能。

3️⃣ 尝试访问国内镜像仓库

我尝试拉取阿里云镜像 docker pull registry.cn-hangzhou.aliyuncs.com/lts/ubuntu:latest

报错:pull access denied for registry.cn-hangzhou.aliyuncs.com/lts/ubuntu

这是因为镜像路径不存在或私有仓库未登录。

四、解决思路:使用国内镜像加速器

Docker 默认使用国外的官方镜像源,国内访问通常会出现超时。因此我们可以手动配置国内镜像加速器。执行以下命令

将下面的"阿里云镜像加速器"换成你的专属加速器地址(格式类似 https://xxxx.mirror.aliyuncs.com

sudo tee /etc/docker/daemon.json <<EOF
{"registry-mirrors": ["阿里云镜像加速器","https://docker.1panel.live","https://hub-mirror.c.163.com"]}EOF

然后重启 Docker 服务:

sudo systemctl daemon-reloadsudo systemctl restart docker

图示:阿里云镜像加速器位置

五、结果验证

再次尝试拉取镜像:

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.9

成功输出:

3.9: Pulling from google_containers/pause

61fec91190a0: Pull complete

Digest: sha256:7031c1b283388d2c2e09b57badb803c05ebed362dc88d84b480cc47f72a21097

Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.9

这说明 Docker 已经能够正常连接镜像源并拉取镜像。

不过,当尝试网易镜像:docker pull hub.c.163.com/library/nginx:latest

仍然报错:

net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

这表明网易的镜像源服务可能已经停止或不稳定。

总结:

1、“Docker 拉不下镜像,十有八九是网络问题,最稳的解决方法就是国内镜像加速 + 正确的安全组配置。”

2、阿里云镜像仓库(镜像加速器)

我们在在 /etc/docker/daemon.json 中配置"registry-mirrors"我们的阿里云镜像加速器,

并重启 Docker 后,Docker Daemon 在拉取镜像时会这样做:

先访问阿里云加速器服务器

阿里云加速器会帮我们中转访问 Docker Hub(官方仓库)

并将常见镜像缓存到国内节点

所以我们实际上还是在拉取 Docker Hub 的镜像资源,只不过是通过阿里云中转、加速访问。

3、阿里云镜像仓库和 Docker Hub 的关系

项目Docker Hub阿里云镜像加速器
所在地区国外(美国)国内(阿里云机房)
访问速度慢(常超时)快(国内网络)
镜像来源官方源官方源的缓存加速
是否完全一致✅ 是,内容相同(同步拉取)
是否需要改命令❌ 不需要,命令一样
http://www.dtcms.com/a/532203.html

相关文章:

  • 找个做游戏的视频网站好WordPress加速优化方案
  • Kafka 生产者详解(上):消息发送流程与API,分区,吞吐量与数据可靠性
  • Chrome扩展安装插件教程,Edge安装插件扩展教程,浏览器安装扩展程序方法
  • 基于Swin Transformer的糖尿病视网膜病变影像分类与诊断系统
  • 从零开始:C++ 线程池 TCP 服务器实战(续篇)
  • 免费招工人在哪个网站传奇合成版2合1雷霆版
  • AJAX家政系统同城服务多商家小程序源码
  • 《string 类模拟实现(收尾):传统与现代写法对比及底层机制探析》
  • ISCSI存储服务
  • 选择排序详解
  • 暖色网站模板wordpress 翻译 每页
  • ProcDump 学习笔记(6.9):MiniPlus 转储(-mp)——轻量却够用的现场证据
  • 特乐网站建设如何用源码搭建网站源码
  • Java 大视界 -- Java 大数据实战:分布式架构重构气象预警平台(2 小时→2 分钟)(428)
  • 洗牌算法讲解——力扣384.打乱数组
  • 芋道源码:VUE3部署:避坑--验证码不现显示,管理后台无法访问后端接口等,完善中。。。
  • 前端速通—ajax篇
  • 济南建立网站湖南建筑工程信息平台
  • android 堆栈打印
  • 太原网站优化排名北京互联网排名
  • 2025-web集群-问题总结
  • CATWIFI
  • 智能旅行助手Agent实战:前后端分离的多Agent系统
  • java基础-练习
  • nginx 配置超时时间
  • apache 配置超时时间
  • 网站开发工作时间个人网页设计作品及设计理念
  • 【Android】View 事件分发机制与源码解析
  • AIGC(生成式AI)试用 38 -- 程序(Python + OCR)-1
  • s001网站建设设计微信营销网络营销方式