在 CentOS 7 上为保障系统稳定性,应避免使用以下 Docker 版本及相关配置:
❌ 应避免的 Docker 版本/类型:
-
Docker CE 的
edge(测试版)或nightly(每日构建)通道版本- 如:
docker-ce-24.0.0~edge,docker-ce-25.0.0~nightly - ⚠️ 原因:未经充分测试,可能存在严重 bug、内核兼容性问题(尤其与 CentOS 7 的较老内核
3.10.0-x)、Cgroups v1/v2 混用崩溃、或与 systemd 219 的集成缺陷。
- 如:
-
Docker CE ≥ 20.10.x 后未明确适配 CentOS 7 的“容器化”或“rootless”实验性功能版本
- 尽管 20.10+ 官方仍宣称支持 CentOS 7,但自 Docker 23.0+ 起,官方已正式停止对 CentOS 7 的支持(自 2023 年 10 月起)。
- ✅ 实际建议:最高仅推荐使用至
docker-ce-20.10.24(最后一个明确通过 CentOS 7 CI 验证的稳定版本)。- 更早的
20.10.17–20.10.24是经过广泛生产验证的“安全终点”。
- 更早的
-
通过
get.docker.com脚本安装的最新版(自动拉取stable通道)- ❌ 危险:该脚本默认安装
stable通道最新包(如24.0.7),而该版本不兼容 CentOS 7(依赖 cgroup v2、新内核特性、systemd v240+ 等)。 - 🔍 验证:运行
dockerd --version和uname -r;若出现failed to start daemon: cgroups: cgroup mountpoint does not exist或no such file or directory: /sys/fs/cgroup/systemd,即为不兼容。
- ❌ 危险:该脚本默认安装
-
Docker Desktop for Linux(非原生,基于 WSL2 或 VM)
- ❌ 不适用于 CentOS 7:Docker Desktop 要求 glibc ≥ 2.28、systemd ≥ 240、且仅支持 Ubuntu/Debian/Fedora 等主流发行版,官方从未支持 CentOS 7。
-
EPEL 或第三方仓库提供的老旧/非标准 Docker 包(如
docker1.13.x)- ❌ 如
docker-1.13.1-208.git7d71120.el7.centos(CentOS 7 默认extras仓库) - ⚠️ 原因:此版本已 EOL(2018 年终止维护),存在已知 CVE(如 CVE-2019-5736 容器逃逸)、无 overlay2 支持、不兼容现代镜像格式(OCI v1),且与 Kubernetes 1.16+ 不兼容。
- ❌ 如
✅ 推荐的安全实践(CentOS 7 稳定方案):
| 项目 | 推荐配置 |
|---|---|
| Docker 版本 | docker-ce-20.10.24(最后兼容版) + docker-ce-cli-20.10.24 + containerd.io-1.6.32(需匹配) |
| 存储驱动 | overlay2(需 xfs 文件系统 + ftype=1,或 ext4;禁用 devicemapper(已弃用且不稳定)) |
| cgroups | 强制使用 cgroup v1(CentOS 7 默认),禁用 systemd.unified_cgroup_hierarchy=1 内核参数 |
| 安装方式 | 使用 Docker 官方 yum repo,指定版本安装:yum install docker-ce-20.10.24 docker-ce-cli-20.10.24 containerd.io-1.6.32 |
| 内核要求 | kernel-3.10.0-1160.el7 或更高(需启用 CONFIG_CGROUPS=y, CONFIG_CGROUP_FREEZER=y, CONFIG_CGROUP_PIDS=y, CONFIG_OVERLAY_FS=y) |
🔧 补充检查命令:
# 确认内核支持
zgrep -i "cgroup|overlay" /proc/config.gz 2>/dev/null || cat /boot/config-$(uname -r) | grep -i "cgroup|overlay"
# 检查 cgroup v1 挂载
mount | grep cgroup | grep -v cgroup2
# 查看当前 Docker 版本及兼容性警告
dockerd --version
docker info 2>&1 | grep -E "(Kernel|Storage|Cgroup)"
💡 重要提醒:CentOS 7 已于 2024-06-30 正式 EOL。长期稳定运行建议迁移到 Rocky Linux 8/9 或 AlmaLinux 8/9(原生支持 Docker 24.x + cgroup v2 + systemd v249+),并使用 Podman(Red Hat 官方推荐替代方案)。
如需具体安装脚本或升级迁移路径,我可为您进一步提供。
云小栈