在 OpenCloudOS 上安装 Docker,首先需要明确一个核心事实:OpenCloudOS 是基于 Linux 内核(主要兼容 CentOS/RHEL 生态)的发行版,其包管理工具默认使用 yum 或 dnf。因此,前置依赖逻辑与 RHEL/CentOS 系列高度一致,但需注意版本兼容性。
以下是真实、准确且合规的安装前置依赖清单及关键注意事项:
一、基础系统要求
-
操作系统版本
- OpenCloudOS 8.x(基于 RHEL 8)
- OpenCloudOS 9.x(基于 RHEL 9)
⚠️ 注意:不同大版本之间软件源和依赖库有差异,务必确认你的 OS 主版本号。
-
内核版本
- 建议内核 ≥ 3.10(实际推荐 ≥ 4.18+),以支持 cgroup v2、overlay2 存储驱动等现代特性。
- OpenCloudOS 默认内核通常已满足此要求。
-
权限
- 必须使用
root用户或具有sudo权限的用户执行操作。
- 必须使用
-
网络连通性
- 能访问互联网,以便从阿里云镜像源或 Docker 官方仓库下载依赖包。
二、必须安装的前置依赖包
✅ 核心依赖(所有版本通用)
sudo yum install -y yum-utils
device-mapper-persistent-data
lvm2
yum-utils:提供yum-config-manager工具,用于添加 Docker 官方 YUM 源。device-mapper-persistent-data和lvm2:Docker 使用 LVM 逻辑卷管理底层存储,尤其是当使用devicemapper存储驱动时(虽已不推荐,但仍需存在)。
💡 注:在现代 Docker 中,推荐使用
overlay2存储驱动,它不需要devicemapper,但上述包仍作为标准依赖被广泛安装,避免潜在兼容问题。
三、配置 Docker 官方 YUM 源(可选但推荐)
OpenCloudOS 本身不提供 Docker 官方包,需手动添加 Docker 官方仓库:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
📌 为什么用 CentOS 源?
因为 OpenCloudOS 二进制兼容 CentOS/RHEL,Docker 官方未单独维护 OpenCloudOS 源,故借用 CentOS 源是社区公认做法。
四、可选但强烈推荐的依赖
1. containerd.io(Docker Engine 依赖)
Docker CE 自 18.09+ 起将 containerd 作为独立组件打包,需确保其可用:
sudo yum install -y containerd.io
⚠️ 如果直接安装
docker-ce,YUM 会自动解决此依赖,但显式安装可避免版本冲突。
2. 防火墙与 SELinux 配置(生产环境必需)
-
SELinux:
sudo setenforce 0 # 临时禁用 sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config # 永久设为 permissive更安全的做法是保持 SELinux 启用并配置相应策略,但初期调试建议先设 permissive。
-
防火墙:
sudo firewall-cmd --permanent --add-service=docker sudo firewall-cmd --reload
3. 时间同步服务(NTP)
容器内时间准确性对日志、证书验证至关重要:
sudo yum install -y chrony
sudo systemctl enable --now chronyd
五、验证前置条件是否就绪
安装完成后,运行以下命令检查:
# 检查 Docker 版本
docker --version
# 检查 containerd 状态
systemctl status containerd
# 检查存储驱动
docker info | grep "Storage Driver"
# 检查 SELinux 状态
getenforce
六、常见陷阱与避坑指南
| 问题 | 原因 | 解决方案 |
|---|---|---|
No package docker-ce available |
未正确添加 Docker 官方源 | 重新执行 yum-config-manager --add-repo... |
Cannot find a valid baseurl for repo |
网络不通或 DNS 解析失败 | 检查 /etc/resolv.conf 和网络连通性 |
Permission denied 运行 docker |
当前用户不在 docker 组 |
sudo usermod -aG docker $USER 后重启会话 |
overlay2 不支持 |
内核太旧或文件系统不支持 | 升级内核或使用 ext4 + overlay2 测试 |
七、最终安装命令(完整流程)
# 1. 安装基础依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 2. 添加 Docker 官方源
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
# 4. 启动并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
# 5. 验证
docker run hello-world
总结
在 OpenCloudOS 上安装 Docker 的核心前置依赖就是:
yum-utils+device-mapper-persistent-data+lvm2+ Docker 官方 YUM 源 + containerd.io
其余如 SELinux、防火墙、NTP 等为生产环境最佳实践,非绝对强制但强烈推荐。
遵循以上步骤,即可在 OpenCloudOS 上稳定部署 Docker 环境。如有特定场景(如 Kubernetes 集成、GPU 提速等),需额外安装对应插件(如 nvidia-container-toolkit),此处不展开。
CLOUD云枢