虽然 CentOS 7 已于 2024 年 6 月 30 日停止维护,但若因存量业务必须在此环境部署,仍可通过配置 Docker 官方 Yum 源安装 Docker CE 稳定版,建议优先评估迁移至受支持操作系统的可能性。
先说结论:在 CentOS 7.9 ECS 上安装 Docker CE 技术上是可行的,但需手动配置官方仓库以获取最新稳定版,同时必须正视系统停止安全更新的风险。
- 适合:存量业务系统维护、临时测试环境、无法立即升级操作系统的场景
- 先准备:确认 ECS 网络能访问 Docker 官方源或配置国内镜像源、备份现有数据
- 验收:通过 docker version 查看版本、运行 hello-world 容器验证引擎正常
命令速用版
# 1. 卸载旧版本(如有)
sudo yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
# 2. 安装 yum-utils 并设置 Docker 仓库
sudo yum install -y yum-config-manager
sudo yum-config-manager `--add-repo` https://download.docker.com/linux/centos/docker-ce.repo
# 3. 安装 Docker CE 最新稳定版
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 4. 启动 Docker 并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker为什么会这样
CentOS 7 默认的 Yum 源中包含的 Docker 版本通常较旧,且不再更新,无法满足使用最新稳定版的需求。要安装 Docker CE(Community Edition),必须添加 Docker 官方的软件仓库。此外,CentOS 7 已于 2024 年 6 月 30 日结束生命周期(EOL),这意味着操作系统底层不再接收安全补丁,在此之上运行容器服务需格外注意网络安全隔离。
分步处理
1. 清理旧版本
如果之前安装过 Docker 或相关包,必须先卸载,避免文件冲突。执行卸载命令后,检查 /var/lib/docker 目录,若需保留镜像和容器数据,请勿删除该目录,仅卸载软件包。
2. 配置仓库源
使用 yum-config-manager 添加官方源。在国内 ECS 环境中,直接连接 download.docker.com 可能超时,若遇到网络问题,可替换为阿里云或腾讯云的 Docker 镜像源地址。配置完成后,执行 yum makecache fast 刷新缓存。
3. 安装与启动
执行安装命令时,yum 会列出可用版本,默认选择稳定版即可。安装完成后,使用 systemctl 启动服务。若需修改存储驱动或监听地址,可编辑 /etc/docker/daemon.json,修改后需重启服务。
4. 权限配置(可选)
默认情况下 docker 命令需要 sudo 权限。若希望当前用户直接执行,可将用户加入 docker 组:sudo usermod -aG docker $USER,完成后需重新登录生效。
怎么验证是否生效
1. 检查版本信息
运行 docker `--version` 和 docker compose version,确认输出了版本号且无报错。若显示 Client 和 Server 版本一致,说明通信正常。
2. 运行测试容器
执行 docker run `--rm` hello-world。若能看到 Hello from Docker! 相关欢迎信息,说明镜像拉取、容器创建、运行全流程正常。
3. 查看服务状态
运行 systemctl status docker,确认 Active 状态为 active (running),且无频繁重启日志。
常见坑
1. 系统 EOL 导致的源失效
CentOS 7 停止维护后,部分基础包镜像源可能归档至 vault.centos.org,若 yum 安装依赖包报错,需检查 /etc/yum.repos.d/ 下的基础源配置是否指向了归档地址。
2. 网络超时问题
在国内 ECS 上拉取 Docker Hub 镜像经常超时。建议配置镜像加速器,在 /etc/docker/daemon.json 中注册表镜像地址,否则安装后的第一步拉取测试镜像就可能失败。
3. 内核版本兼容性
Docker CE 要求 CentOS 7 内核版本不低于 3.10。CentOS 7.9 默认内核通常满足要求,但若手动降级过内核,需运行 uname -r 确认,否则容器可能无法启动。
参考来源
- Docker 官方文档:Install Docker Engine on CentOS(https://docs.docker.com/engine/install/centos/)
- CentOS 官方博客:End dates are coming for CentOS Stream 8 and CentOS Linux 7(https://blog.centos.org/2023/04/end-dates-are-coming-for-centos-stream-8-and-centos-linux-7/)