OpenCloudOS上安装Docker需要哪些前置依赖?

在 OpenCloudOS 上安装 Docker,首先需要明确一个核心事实:OpenCloudOS 是基于 Linux 内核(主要兼容 CentOS/RHEL 生态)的发行版,其包管理工具默认使用 yumdnf。因此,前置依赖逻辑与 RHEL/CentOS 系列高度一致,但需注意版本兼容性。

以下是真实、准确且合规的安装前置依赖清单及关键注意事项:


一、基础系统要求

  1. 操作系统版本

    • OpenCloudOS 8.x(基于 RHEL 8)
    • OpenCloudOS 9.x(基于 RHEL 9)

      ⚠️ 注意:不同大版本之间软件源和依赖库有差异,务必确认你的 OS 主版本号。

  2. 内核版本

    • 建议内核 ≥ 3.10(实际推荐 ≥ 4.18+),以支持 cgroup v2、overlay2 存储驱动等现代特性。
    • OpenCloudOS 默认内核通常已满足此要求。
  3. 权限

    • 必须使用 root 用户或具有 sudo 权限的用户执行操作。
  4. 网络连通性

    • 能访问互联网,以便从阿里云镜像源或 Docker 官方仓库下载依赖包。

二、必须安装的前置依赖包

✅ 核心依赖(所有版本通用)

sudo yum install -y yum-utils 
                    device-mapper-persistent-data 
                    lvm2
  • yum-utils:提供 yum-config-manager 工具,用于添加 Docker 官方 YUM 源。
  • device-mapper-persistent-datalvm2: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云枢 » OpenCloudOS上安装Docker需要哪些前置依赖?