Administrator
发布于 2026-07-24 / 1 阅读
0
0

CentOS 7 安装 Docker 并配置国内源

重要提示:CentOS 7 已于 2024 年 6 月 30 日结束维护。 本文只解决现有 CentOS 7 服务器继续运行 Docker 时的兼容问题,不建议作为新项目的长期生产方案。新服务器优先选择 Rocky Linux、AlmaLinux、CentOS Stream 或其他仍受维护的发行版。

小西带着旧系统走向归档源

CentOS 7 停服后,最常见的两个问题是:

  1. yum 访问 mirrorlist.centos.org 失败,提示 Cannot find a valid baseurl

  2. Docker Hub 拉取镜像超时,docker compose up -d 卡在 registry-1.docker.io

下面按“修复系统软件源 → 安装 Docker → 配置镜像加速 → 验证”的顺序处理。

0. 准备工作

先确认系统版本,并确保当前账号可以使用 sudo

cat /etc/os-release
uname -r

如果机器上已有生产服务,先做快照或备份。下面会修改 YUM 仓库文件和 Docker daemon 配置。

1. 把 CentOS 7 软件源切到国内归档镜像

CentOS 7 的常规镜像列表已经失效,因此先备份原仓库文件,再关闭 mirrorlist 并指向 7.9.2009 归档路径。

sudo cp -a /etc/yum.repos.d/CentOS-Base.repo \
  /etc/yum.repos.d/CentOS-Base.repo.bak

sudo sed -i \
  -e 's|^mirrorlist=|#mirrorlist=|' \
  -e 's|^#baseurl=http://mirror.centos.org/centos/\$releasever/|baseurl=https://mirrors.cloud.tencent.com/centos/7.9.2009/|' \
  /etc/yum.repos.d/CentOS-Base.repo

sudo yum clean all
sudo yum makecache
sudo yum repolist

最后一条命令能列出 baseupdatesextras 等仓库,就说明 YUM 已恢复可用。

YUM 源修复流程

如果服务器不在腾讯云,或该镜像访问不稳定,请改用所在云厂商提供的 CentOS 7.9.2009 归档镜像。不要再依赖已经失效的 mirrorlist.centos.org

2. 配置 Docker CE 国内软件源并安装

先安装仓库管理工具,再添加 Docker CE 的国内镜像仓库:

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo \
  https://mirrors.cloud.tencent.com/docker-ce/linux/centos/docker-ce.repo
sudo yum clean all
sudo yum makecache

安装 Docker Engine、Buildx 和 Docker Compose 插件:

sudo yum install -y \
  docker-ce \
  docker-ce-cli \
  containerd.io \
  docker-buildx-plugin \
  docker-compose-plugin

启动 Docker,并设置为开机自启:

sudo systemctl enable --now docker
sudo docker version
sudo docker compose version

看到 Client 和 Server 版本信息,以及 Docker Compose version,说明安装完成。

3. 配置 Docker Hub 镜像加速

Docker 能装好,不代表拉取镜像一定顺畅。若直接拉取 Docker Hub 经常超时,可为 daemon 配置镜像加速器。

下例的 mirror.ccs.tencentyun.com 是腾讯云内网加速地址,适用于腾讯云实例。其他云厂商请使用各自账号提供的专属加速地址或私有镜像仓库。

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json > /dev/null <<'EOF'
{
  "registry-mirrors": [
    "https://mirror.ccs.tencentyun.com"
  ]
}
EOF

sudo systemctl daemon-reload
sudo systemctl restart docker

确认配置已被 Docker 读取:

sudo docker info | sed -n '/Registry Mirrors:/,/Live Restore Enabled:/p'

也可以直接拉一个轻量镜像验证网络:

sudo docker pull hello-world
sudo docker run --rm hello-world

4. 常见问题

YUM 仍提示无法找到 baseurl

确认仓库文件中已经禁用了 mirrorlist=,并且 baseurl= 指向 7.9.2009 的归档路径:

grep -E '^(mirrorlist|baseurl)=' /etc/yum.repos.d/CentOS-Base.repo
sudo yum clean all
sudo rm -rf /var/cache/yum
sudo yum makecache

拉取镜像仍然连接超时

先检查 Docker 是否真的加载了镜像加速配置:

sudo docker info | grep -A 5 'Registry Mirrors'
sudo cat /etc/docker/daemon.json
sudo systemctl status docker --no-pager

如果仍然失败,不要反复换来路不明的公共镜像站。优先使用云厂商提供的专属加速器,或者把常用镜像同步到自己的私有仓库。

5. 小结

在 CentOS 7 上安装 Docker 的关键不是一条安装命令,而是先接受它已经进入归档状态:

  • YUM 报错时,先修复归档软件源;

  • Docker 安装时,使用可访问的软件仓库;

  • 镜像拉取超时时,按云厂商环境配置受信任的加速器;

  • 能迁移时,尽快迁移到仍有安全更新的系统。

参考资料:


评论