温馨提示×

centos stream8支持docker吗

小樊
33
2026-07-20 05:04:51
栏目: 智能运维

CentOS Stream 8 支持 Docker,但需要注意 Docker 官方仓库的兼容性以及系统默认包管理的变化。以下是具体说明和安装建议:

1. 兼容性背景

CentOS Stream 8 是 RHEL 8 的上游发行版,基于 RHEL 8 的内核和包体系,Docker 官方仓库对 RHEL 8/CentOS 8 系列是支持的(Docker CE 从 18.06+ 开始适配 RHEL 8)。但需要注意:

  • CentOS Stream 8 默认使用 podman 作为容器运行时(替代 Docker),但 Docker 仍可手动安装。
  • 系统默认的 firewalldnftables 可能与 Docker 的网络配置存在兼容性问题,需适当调整。

2. 安装 Docker 的步骤(推荐)

步骤 1:卸载旧版本(若有)

sudo dnf remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine podman runc

步骤 2:安装依赖包

sudo dnf install -y dnf-utils device-mapper-persistent-data lvm2

步骤 3:添加 Docker 官方仓库

Docker 官方为 RHEL 8 提供了仓库,CentOS Stream 8 可直接使用:

sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

注意:仓库路径中的 centos 是兼容 RHEL 8/CentOS 8 的,无需修改为 centos-stream

步骤 4:安装 Docker CE

默认安装最新稳定版:

sudo dnf install -y docker-ce docker-ce-cli containerd.io

若提示依赖冲突(如 container-selinux 版本问题),可先安装 container-selinux

sudo dnf install -y http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/Packages/container-selinux-2.229.0-2.el8.noarch.rpm

(若链接失效,可到 CentOS 镜像站 搜索最新 container-selinux 包)

步骤 5:启动并设置开机自启

sudo systemctl start docker
sudo systemctl enable docker

步骤 6:验证安装

sudo docker --version
sudo docker run hello-world  # 测试 Docker 是否正常工作

3. 常见问题与解决

问题 1:docker-ce 安装时提示 nothing provides container-selinux >= 2:2.74

  • 手动安装 container-selinux(见步骤 4 中的解决方案)。

问题 2:Docker 网络与 firewalld 冲突

CentOS Stream 8 默认启用 firewalld,可能导致 Docker 容器无法访问外部网络。可尝试:

  • 临时关闭 firewalld 测试:
    sudo systemctl stop firewalld
    
  • 或配置 firewalld 允许 Docker 网络(推荐):
    sudo firewall-cmd --permanent --zone=trusted --add-interface=docker0
    sudo firewall-cmd --reload
    

问题 3:使用 Podman 替代 Docker

若不想安装 Docker,CentOS Stream 8 自带的 podman 是 Docker 的兼容替代品(命令几乎一致,无需 daemon),可直接使用:

podman --version
podman run hello-world

总结

CentOS Stream 8 完全支持 Docker,通过官方仓库即可安装。若遇到依赖问题,优先解决 container-selinux 版本;若偏好原生工具,也可直接使用 podman 替代。

0