温馨提示×

CentOS Stream8 兼容 Docker 吗

小樊
41
2026-08-29 20:54:46
栏目: 智能运维

简而言之:兼容,但官方已不再提供 Docker 软件包,需要通过第三方源(如 Docker 官方)安装,且部分内核特性(如 cgroup v2)的配置与 CentOS 7 不同。

以下是详细说明和操作建议:

1. 兼容性结论

  • 系统层面:CentOS Stream 8 基于 RHEL 8,内核版本较高(通常 4.18+),完全支持运行 Docker
  • 软件源层面:CentOS 8 系列(包括 Stream 8)的默认仓库中移除了 Docker 包(仅保留 Podman 和 Buildah)。因此,你无法直接使用 yum install docker 来安装 Docker。

2. 安装方式

由于官方源没有 Docker,你需要添加 Docker 官方仓库 来安装。

安装步骤(推荐):

  1. 卸载旧版本(如果有):

    sudo yum remove docker docker-common docker-selinux docker-engine podman runc
    
  2. 安装依赖工具:

    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    
  3. 添加 Docker 官方仓库:

    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    
  4. 安装 Docker Engine:

    sudo yum install -y docker-ce docker-ce-cli containerd.io
    
  5. 启动并启用 Docker:

    sudo systemctl start docker
    sudo systemctl enable docker
    

3. 特别注意:Cgroup 驱动问题

CentOS Stream 8 默认使用 cgroup v2。虽然新版 Docker 已经支持,但在与 Kubernetes 或某些旧应用配合时可能会出现警告。

  • 如果仅用于单机 Docker 使用:现代 Docker 版本通常能自动适配,无需过多配置。
  • 如果用于 Kubernetes (k8s):需要确保 Docker 的 cgroup 驱动与 kubelet 一致(通常设置为 systemd)。
    • 修改 Docker 配置 /etc/docker/daemon.json(如不存在则新建):
      {
        "exec-opts": ["native.cgroupdriver=systemd"]
      }
      
    • 重启 Docker:sudo systemctl restart docker

4. 替代方案:Podman

CentOS Stream 8 官方主推的是 Podman。它与 Docker 命令高度兼容(alias docker=podman 基本可用),且无需 Daemon,更适合纯 RHEL/CentOS 生态。

  • 如果你不需要 Docker 特定的功能(如特定的 Docker Compose 版本或旧插件),使用 Podman 是更原生的选择
  • 安装 Podman:sudo yum install podman

总结建议

场景 建议
需要运行标准 Docker 容器 兼容。按照上述步骤添加 Docker 官方源安装即可。
用于开发或本地测试 兼容。安装 Docker 或使用 Podman 均可。
用于生产环境/新部署 建议评估 Podman,它更符合 RHEL 8/9 的未来方向。
用于 Kubernetes 建议使用 Containerd 或 CRI-O,而非直接运行 Docker(除非有特殊需求)。

一句话总结:CentOS Stream 8 可以跑 Docker,但需要手动添加 Docker 官方源安装,而不是用系统自带的包管理器直接装。

0