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 已经完整安装并配置完毕!

相关推荐
Titan20242 小时前
Linux动静态库
linux·服务器·c++
赵民勇3 小时前
Linux file命令详解
linux·运维
原来是猿3 小时前
Docker 【 技术架构(1)】
docker·容器·架构
li-xun3 小时前
LINUX DO 社区注册机制调整与公益 AI 服务动态
linux·运维·人工智能
ba_pi3 小时前
k8s删除pod
linux·容器·kubernetes
木雷坞3 小时前
Qdrant Docker 部署教程:数据卷、API Key 和集合初始化
运维·docker·容器·知识图谱
wuminyu3 小时前
Java锁机制之park和unpark源码剖析
java·linux·c语言·jvm·c++
梦梦代码精3 小时前
为什么这个开源的AI平台会火?有点东西。。。
人工智能·算法·机器学习·docker·开源
皆圥忈4 小时前
文件描述符与重定向
linux