CentOS Stream 8 支持 Docker,但需要注意 Docker 官方仓库的兼容性以及系统默认包管理的变化。以下是具体说明和安装建议:
CentOS Stream 8 是 RHEL 8 的上游发行版,基于 RHEL 8 的内核和包体系,Docker 官方仓库对 RHEL 8/CentOS 8 系列是支持的(Docker CE 从 18.06+ 开始适配 RHEL 8)。但需要注意:
podman 作为容器运行时(替代 Docker),但 Docker 仍可手动安装。firewalld 和 nftables 可能与 Docker 的网络配置存在兼容性问题,需适当调整。sudo dnf remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine podman runc
sudo dnf install -y dnf-utils device-mapper-persistent-data lvm2
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。
默认安装最新稳定版:
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 包)
sudo systemctl start docker
sudo systemctl enable docker
sudo docker --version
sudo docker run hello-world # 测试 Docker 是否正常工作
docker-ce 安装时提示 nothing provides container-selinux >= 2:2.74container-selinux(见步骤 4 中的解决方案)。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
若不想安装 Docker,CentOS Stream 8 自带的 podman 是 Docker 的兼容替代品(命令几乎一致,无需 daemon),可直接使用:
podman --version
podman run hello-world
CentOS Stream 8 完全支持 Docker,通过官方仓库即可安装。若遇到依赖问题,优先解决 container-selinux 版本;若偏好原生工具,也可直接使用 podman 替代。