CentOS 7 安装 Docker并配置镜像加速(完整指南)

Docker 是一个开源的容器化平台,可以让你轻松地打包、分发和运行应用程序。但 CentOS 7 的默认软件源中并不包含 Docker CE,而且由于网络环境和系统兼容性问题,直接安装容易遇到各种坑。本文将带你一步步在 CentOS 7 上安装 Docker CE,并配置国内镜像加速器,让镜像拉取不再卡顿。

一、安装前的准备

1.1 确认系统环境

  • 操作系统:CentOS 7(64 位)
  • 内核版本:建议 3.10 或更高(CentOS 7 默认即满足)
  • 权限要求 :具备 root 权限,或可以使用 sudo
  • 网络要求:服务器能够访问互联网,尤其是 HTTPS(443 端口)

检查内核版本,运行:

bash 复制代码
uname -r

正常应输出类似 3.10.0-xxx.el7.x86_64,说明内核符合 Docker 运行要求。

1.2 更换 Yum 源为阿里云源(强烈推荐)

CentOS 7 的官方 yum 源已停止维护,且默认镜像站在国内访问速度很慢,经常导致安装失败。因此,在开始安装之前,我们先将 yum 源替换为阿里云提供的稳定镜像源。

① 备份原有配置文件

bash 复制代码
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

这一步不是必须,但建议保留原始文件,以便将来需要时可以恢复。

② 下载阿里云 CentOS 7 源

bash 复制代码
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

③ 清理并重建缓存

bash 复制代码
sudo yum clean all
sudo yum makecache

执行完这些操作后,yum 就会从阿里云镜像拉取元数据和软件包,后续安装速度会明显提升。

二、卸载旧版本 Docker(如有)

如果系统中曾经安装过旧版 Docker(如 dockerdocker-engine),必须先卸载干净,否则文件冲突会导致安装失败。

bash 复制代码
sudo yum remove docker \
                 docker-client \
                 docker-client-latest \
                 docker-common \
                 docker-latest \
                 docker-latest-logrotate \
                 docker-logrotate \
                 docker-engine

如果没有安装过 Docker,跳过此步即可。

三、安装 Docker CE 依赖包

Docker 需要一些基础工具来管理软件源和存储驱动,安装这些依赖是后续操作的前提。

bash 复制代码
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  • yum-utils 提供了 yum-config-manager 工具,用来管理 yum 源;
  • device-mapper-persistent-datalvm2 是 Docker 的存储驱动所必需。

四、添加阿里云 Docker CE 软件源

Docker 官方为 CentOS 提供了官方的 yum 源,但直接使用在国内拉取很慢。我们可以换成阿里云提供的镜像源,快速稳定。

bash 复制代码
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

此命令会在 /etc/yum.repos.d/ 下创建 docker-ce.repo 文件,之后安装 Docker 时会自动从阿里云镜像获取安装包。

五、查看可安装的 Docker CE 版本

CentOS 7 与最新版 Docker CE(如 26.x)可能存在兼容性问题,安装前最好确认一下仓库中有哪些版本,然后选择一个稳定版本安装。

bash 复制代码
yum list docker-ce --showduplicates | sort -r

你会看到类似这样的列表:

复制代码
docker-ce.x86_64            3:26.1.4-1.el7                    docker-ce-stable
docker-ce.x86_64            3:24.0.7-1.el7                    docker-ce-stable
docker-ce.x86_64            20.10.9-3.el7                     docker-ce-stable
...

我们推荐安装 24.0.720.10.9,它们与 CentOS 7 兼容性最好。

六、安装指定版本的 Docker CE

注意 :不要直接运行 yum install docker-ce,因为它会默认安装最新版(可能是 26.x),很可能导致启动失败。

务必明确指定版本号!

选择以下任一命令执行:

选项 1:安装 Docker 24.0.7(较新且稳定)

bash 复制代码
sudo yum install -y docker-ce-24.0.7-1.el7 docker-ce-cli-24.0.7-1.el7 containerd.io

选项 2:安装 Docker 20.10.9(经典稳定版,兼容性极佳)

bash 复制代码
sudo yum install -y docker-ce-20.10.9-3.el7 docker-ce-cli-20.10.9-3.el7 containerd.io

这些命令会同时安装 docker-ce(引擎)、docker-ce-cli(命令行工具)和 containerd.io(容器运行时),三者缺一不可。

七、启动 Docker 并设置开机自启

安装完成后,启动 Docker 服务,并让其随系统启动自动运行。

bash 复制代码
# 启动 Docker 服务
sudo systemctl start docker

# 设置开机自动启动
sudo systemctl enable docker

# 查看 Docker 运行状态
sudo systemctl status docker

如果输出中显示 active (running),说明 Docker 已成功启动。

八、配置 Docker 国内镜像加速器(解决拉取超时)

8.1 为什么要配置镜像加速?

默认情况下,Docker 会从 Docker Hub(https://registry-1.docker.io)拉取镜像,但国内直接访问速度很慢,甚至频繁超时。镜像加速器是国内云服务商提供的缓存服务,可以让我们从国内的节点下载镜像,速度大幅提升。

8.2 修改 Docker 配置文件

创建或修改 Docker 的守护进程配置文件 /etc/docker/daemon.json,添加多个可用的镜像加速地址。我们这里提供一个比较全的列表,Docker 会自动轮询,即使部分地址失效也能保证拉取成功。

bash 复制代码
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://docker.m.daocloud.io/",
    "https://dockerproxy.com/",
    "https://docker.1panelproxy.com",
    "https://2a6bf1988cb6428c877f723ec7530dbc.mirror.swr.myhuaweicloud.com",
    "https://docker.m.daocloud.io",
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com",
    "https://your_preferred_mirror",
    "https://dockerhub.icu",
    "https://dockerregistry.cyou",
    "https://docker-cf.registry.cyou",
    "https://dockercf.jsdelivrf.yi",
    "https://docker.jsdelivrf.yi",
    "https://dockertest.jsdelivrf.yi",
    "https://mirror.aliyuncs.com",
    "https://dockerproxy.com",
    "https://docker.nju.edu.cn",
    "https://docker.mirrors.sjtug.sjtu.edu.cn",
    "https://docker.mirrors.ustc.edu.cn",
    "https://mirror.iscas.ac.cn",
    "https://docker.rainbond.cc"
  ]
}
EOF

这个列表中很多都是国内主流镜像站,即使其中几个临时失效,Docker 也会自动尝试下一个,基本能保证镜像可以顺利拉取。

8.3 重启 Docker 使配置生效

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

8.4 验证镜像加速是否生效

执行以下命令查看 Docker 当前配置:

bash 复制代码
docker info

在输出的末尾,你应该能看到类似这样的 Registry Mirrors 列表:

复制代码
 Registry Mirrors:
  https://docker.m.daocloud.io/
  https://dockerproxy.com/
  https://docker.1panelproxy.com/
  ...

如果看到你配置的地址,说明镜像加速已经生效。

九、测试拉取镜像

最后,我们拉取一个极小的 hello-world 镜像来验证一切是否正常:

bash 复制代码
sudo docker pull hello-world

首次拉取可能需要几分钟(取决于你的网络),但配置了加速器后一般不会超时。耐心等待,下载速度应该比之前快得多。

你可能会在这里一直卡住好几分钟,但是不要着急,我也在这里停留了两三分钟。但是不要担心,开始下载的时候速度还是不慢的,即使是800MB的mysql开始下载也就几分钟就下好了。

如果镜像成功拉取,恭喜你,Docker 已经完整安装并配置完毕!

相关推荐
ltl9 小时前
内核追踪:ftrace、kprobe、uprobe、tracepoint 生产实战
linux
·薯条大王9 小时前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
小小、码农13 小时前
Linux进程控制:从fork到exec,手写一个简易Shell
linux·运维·服务器
不会就选b13 小时前
Linux之进程间通信(二)---模拟进程池
linux·运维·服务器
沫璃染墨15 小时前
《从零入门Linux系统篇(十五):系统工具篇·六——GDB调试器详解:从程序执行控制到高级调试技巧》
linux·运维·服务器·c语言·c++
AIgorithmGEEK16 小时前
Linux 环境变量完全指南:从入门到理解底层原理
linux·运维·服务器
修罗王16 小时前
Linux Docker 服务管理与排查实战指南(新手速查版)
运维·docker
酷可达拉斯16 小时前
Linux操作系统-升级OpenSSH修复漏洞
linux·运维·服务器·云计算
Molesidy17 小时前
【Linux】基于busybox的根文件系统的完善
linux·服务器·嵌入式linux
张龙68718 小时前
Docker 镜像瘦身实战:从 1.2GB 到 128MB,我踩过的 7 个坑和一套可复制的方法论
运维·后端·docker