Error downloading packages: docker-compose-plugin-2.27.1-1.el7.x86_64: [Errno 25

417 阅读4分钟

docker部署出错

image.png

报错信息表示所有可用的镜像源都无法下载 docker-compose-plugin 包,通常是由于镜像源文件损坏、版本不匹配或本地缓存问题导致。

(1)首先清理 yum 包管理器缓存

sudo yum clean all

sudo

作用:以管理员权限(root)执行后续命令(因为清理系统缓存需要 root 权限)。

若不加 sudo:普通用户执行会提示“权限不足”(Permission denied)

(2)按系统提示清理 metadata 缓存

sudo yum --enablerepo=docker-ce-stable clean metadata

清理 Docker 官方源(docker-ce-stable)的本地缓存 metadata(元数据,记录包版本和下载地址),避免因缓存过时导致的“文件校验不符”问题。

--enablerepo=docker-ce-stable: 显式指定启用 docker-ce-stable 仓库(Docker 官方稳定版源,即使该源默认禁用也会临时启用)。

clean metadata: 仅清理元数据缓存(metadata)——即记录软件包版本、依赖关系、下载地址的“索引文件”

    之前安装 Docker 时可能因本地缓存的 docker-ce-stable 元数据过期,导致下载的包版本、校验和与索引不匹配(如提示“软件包与预期下载的不符”)。清理后,yum 会重新从镜像源拉取最新的元数据,确保后续安装时“索引”与“实际包”一致。

(3)重新安装依赖

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

(4)配置 Docker 镜像源

添加清华镜像源的 repo 配置文件

sudo yum-config-manager \
        --add-repo \
        https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

yum-config-manager --add-repo <url>: 通过 yum 工具添加一个新的仓库配置文件(.repo 文件),该文件包含镜像源的地址、版本等信息。

sudo sed -i 's|https://download.docker.com|https://mirrors.tuna.tsinghua.edu.cn/docker-ce|g' /etc/yum.repos.d/docker-ce.repo

将默认的 Docker 官方源替换为 清华大学开源镜像源(国内访问速度更快),解决 Docker 安装时的网络问题。

① sed:Stream Editor(流编辑器),用于对文本文件进行 批量替换、删除、插入 等操作,是 Linux 系统中处理文本的核心工具。 ② -i:sed 的“原地编辑”选项(in-place),表示 直接修改目标文件内容,而非输出到终端。 若不加 -i:sed 仅会在终端显示替换后的内容,不会实际修改文件(需手动重定向保存,如 sed '...' file > newfile)。 ③ 核心替换规则:'s|旧地址|新地址|g' 这是 sed 的 替换命令(substitute),格式为 s/原字符串/新字符串/选项,此处用 | 作为分隔符(默认是 /,但因地址中包含 /,用 | 可避免转义,更清晰)。

s:表示“替换操作”(substitute)。 旧地址:download.docker.com Docker 官方源地址(国外服务器,国内访问慢或不稳定)。 新地址:mirrors.tuna.tsinghua.edu.cn/docker-ce 清华大学开源镜像站的 Docker 仓库地址(国内服务器,访问速度快)。 g:全局替换(global),表示 替换文件中所有匹配的旧地址(而非仅替换第一个匹配项)。 ④ 目标文件:/etc/yum.repos.d/docker-ce.repo 作用:yum 包管理器的 Docker 仓库配置文件,记录了 Docker 软件包的下载地址(由之前的 yum-config-manager --add-repo 命令生成)。 为什么修改此文件? 直接添加的 docker-ce.repo 文件中,baseurl(基础下载地址)可能仍指向 Docker 官方源(download.docker.com),需替换为清华源才能让 yum 从国内下载。

(5)生成高速缓存(提升安装速度)

手动生成 yum 仓库的元数据缓存,加速后续软件安装。

sudo yum makecache fast

yum makecache:yum 的子命令,将镜像源中的软件包信息(版本、依赖、下载地址等)缓存到本地,避免每次安装时重复从网络拉取。

fast:可选参数(非必须),表示“快速模式”——只下载必要的元数据,跳过部分校验,加快缓存生成速度。

(6)安装 Docker 引擎核心组件

sudo yum install -y docker-ce

通过 yum 安装 Docker 引擎的 社区版(Docker CE)

docker-ce:Docker Community Edition(社区版),免费开源的 Docker 引擎核心包,包含 dockerd 守护进程、基础命令等。

-y:自动确认安装(无需手动输入 yes)。

(7)验证 Docker 是否安装成功

docker --version

检查 Docker 客户端版本,确认安装完成且命令可执行。

image.png 这样就成功了