Skip to content

2025年在已停止维护的 CentOS 7 上装 Docker:从「装不上」到「跑起来」的完整笔记

CentOS 7 已经官宣停更,官方源三天两头 404;国内服务器裸连 Docker Hub 又频频超时。
这篇笔记把我自己踩过的坑一次性写全,每一步都写清楚是干嘛的,复制粘贴就能用。


1. 先看看机器能不能跑

bash
cat /etc/redhat-release   # 看系统版本
uname -r                  # 看内核,≥3.10 就行
getconf LONG_BIT          # 确认 64 位

CentOS 7 默认内核就是 3.10,不用升级,直接下一步。


2. 把旧 repo 备份,防止改错回不去

bash
sudo mkdir -p /etc/yum.repos.d/backup
sudo mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/

目的:留条后路,哪天想用回官方源也能秒切。


3. 换国内基础源,先让 yum 能装包

bash
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
sudo yum clean all && sudo yum makecache fast

目的:CentOS 停更后默认镜像站失效,换成阿里云还能继续下载依赖。


4. 换国内 Docker CE 源,否则安装过程就卡死

bash
sudo wget -O /etc/yum.repos.d/docker-ce.repo \
  http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo
sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' \
  /etc/yum.repos.d/docker-ce.repo

目的:官方 download.docker.com 被墙,阿里云内网线路稳定。


5. 安装 Docker 全家桶

bash
sudo yum -y install docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker

目的docker-ce 是社区版主包,containerd.io 是底层运行时,缺一不可。


6. 换国内镜像加速器,解决「拉镜像超时」

新建/覆盖配置文件:

bash
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://docker.1panel.live",
    "https://hub.rat.dev",
    "https://dockerhub.icu"
  ]
}
EOF

重启生效:

bash
sudo systemctl daemon-reload
sudo systemctl restart docker

目的:把默认 registry-1.docker.io 转到国内节点,秒拉 hello-world。


7. 验证:跑官方 hello-world

bash
sudo docker run --rm hello-world

看到以下字样就 OK:

Hello from Docker!
This message shows that your installation appears to be working correctly.

首次运行会先拉镜像,以后本地有了就直接跑


8. 常见问题速查表

报错现象一句话解决
TCP connection reset by peer没换国内 Docker 源,执行第 4 步
File contains no section headersrepo 文件里混进 404 页面,删掉重新下载
Client.Timeout exceeded没配镜像加速器,执行第 6 步
container-selinux 依赖失败sudo yum install -y epel-release 再装 Docker

9. 懒人一键脚本(整个复制跑)

bash
#!/bin/bash
set -e
echo "-- 1. 备份旧 repo"
mkdir -p /etc/yum.repos.d/backup
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/

echo "-- 2. 换国内基础源"
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo

echo "-- 3. 换国内 Docker 源"
wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo

echo "-- 4. 安装 Docker"
yum clean all && yum makecache fast
yum -y install docker-ce docker-ce-cli containerd.io

echo "-- 5. 镜像加速器"
mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://docker.1panel.live",
    "https://hub.rat.dev"
  ]
}
EOF
systemctl daemon-reload
systemctl restart docker
systemctl enable docker

echo "-- 6. 验证"
docker version
docker run --rm hello-world

保存为 install_docker_centos7.shchmod +xbash 一下,5 分钟完事


全文亲测,每一步都能复制粘贴跑通
如果帮到你,点个收藏再走~