centos8安装docker【新】

CentOS Stream 8 安装 Docker(2025 最新实践)

本指南面向 CentOS Stream 8,在 2025 年可用的镜像与依赖路径基础上编写,解决常见的依赖缺失与仓库 404 问题。内容可直接复制到博客平台。


适用场景与要点

  • 目标系统:CentOS Stream 8(非 CentOS Linux 8)
  • 推荐源:国内镜像(示例使用阿里云)
  • 依赖来源:BaseOS / AppStream / Extras / PowerTools + EPEL
  • 安装策略:启用 Docker 官方仓库;安装时使用 --nobest 规避版本"过新"导致的依赖不匹配

1. 切换到可用镜像源(阿里云示例)

将系统现有 .repo 文件备份后,写入 BaseOS、AppStream、Extras、PowerTools 四个仓库配置。

bash 复制代码
sudo mkdir -p /etc/yum.repos.d/backup
sudo mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/ 2>/dev/null

# BaseOS
sudo tee /etc/yum.repos.d/CentOS-Stream-BaseOS.repo > /dev/null <<'EOF'
[baseos]
name=CentOS Stream 8 - BaseOS - Aliyun
baseurl=https://mirrors.aliyun.com/centos/8-stream/BaseOS/$basearch/os/
gpgcheck=0
enabled=1
EOF

# AppStream
sudo tee /etc/yum.repos.d/CentOS-Stream-AppStream.repo > /dev/null <<'EOF'
[appstream]
name=CentOS Stream 8 - AppStream - Aliyun
baseurl=https://mirrors.aliyun.com/centos/8-stream/AppStream/$basearch/os/
gpgcheck=0
enabled=1
EOF

# Extras
sudo tee /etc/yum.repos.d/CentOS-Stream-Extras.repo > /dev/null <<'EOF'
[extras]
name=CentOS Stream 8 - Extras - Aliyun
baseurl=https://mirrors.aliyun.com/centos/8-stream/extras/$basearch/os/
gpgcheck=0
enabled=1
EOF

# PowerTools(在 Stream 8 中常用以替代 CRB)
sudo tee /etc/yum.repos.d/CentOS-Stream-PowerTools.repo > /dev/null <<'EOF'
[powertools]
name=CentOS Stream 8 - PowerTools - Aliyun
baseurl=https://mirrors.aliyun.com/centos/8-stream/PowerTools/$basearch/os/
gpgcheck=0
enabled=1
EOF

sudo dnf clean all
sudo dnf makecache

2. 启用 EPEL 仓库

使用独立 RPM 安装,避免被无效仓库阻塞。

bash 复制代码
sudo dnf install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm

3. 安装 Docker 所需依赖

container-selinux 常来自 EPEL;iptables 与 libcgroup 来自系统仓库。

bash 复制代码
sudo dnf install -y iptables libcgroup container-selinux --enablerepo=epel

4. 添加 Docker 官方仓库并安装

bash 复制代码
sudo dnf install -y dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 安装 Docker CE(使用 --nobest 以获得依赖匹配的版本组合)
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin --nobest

5. 启动与验证

bash 复制代码
sudo systemctl enable --now docker
docker version
docker run hello-world

看到输出中包含:

复制代码
Hello from Docker!

即表示安装成功。


6.(可选)将当前用户加入 docker 组

bash 复制代码
sudo usermod -aG docker $USER
newgrp docker

7. 常见问题排查

7.1 CRB 仓库 404

  • 在 CentOS Stream 8 下,请优先使用 PowerTools ,并禁用失效的 CRB:

    bash 复制代码
    sudo sed -i 's/^enabled=.*/enabled=0/' /etc/yum.repos.d/CentOS-Stream-CRB.repo 2>/dev/null || true

7.2 container-selinux 找不到

  • 先确认 EPEL 已安装:

    bash 复制代码
    sudo dnf install -y epel-release || sudo dnf install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
  • 重新刷新缓存并指定仓库安装:

    bash 复制代码
    sudo dnf clean all && sudo dnf makecache
    sudo dnf --enablerepo=epel install -y container-selinux

7.3 Unit file docker.service does not exist

  • 说明 Docker 未正确安装或仓库不可用,请重走:第 4 步的仓库配置与安装命令;
  • 确保 docker-ce, docker-ce-cli, containerd.io 均已安装成功;

7.4 dnf config-manager 不存在

bash 复制代码
sudo dnf install -y dnf-plugins-core

8. 一键安装脚本(可选)

保存为 install_docker_stream8.sh 并执行 bash install_docker_stream8.sh。

bash 复制代码
#!/usr/bin/env bash
set -euo pipefail

# 更换到阿里云镜像
mkdir -p /etc/yum.repos.d/backup
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/ 2>/dev/null || true

cat > /etc/yum.repos.d/CentOS-Stream-BaseOS.repo <<'EOF'
[baseos]
name=CentOS Stream 8 - BaseOS - Aliyun
baseurl=https://mirrors.aliyun.com/centos/8-stream/BaseOS/$basearch/os/
gpgcheck=0
enabled=1
EOF

cat > /etc/yum.repos.d/CentOS-Stream-AppStream.repo <<'EOF'
[appstream]
name=CentOS Stream 8 - AppStream - Aliyun
baseurl=https://mirrors.aliyun.com/centos/8-stream/AppStream/$basearch/os/
gpgcheck=0
enabled=1
EOF

cat > /etc/yum.repos.d/CentOS-Stream-Extras.repo <<'EOF'
[extras]
name=CentOS Stream 8 - Extras - Aliyun
baseurl=https://mirrors.aliyun.com/centos/8-stream/extras/$basearch/os/
gpgcheck=0
enabled=1
EOF

cat > /etc/yum.repos.d/CentOS-Stream-PowerTools.repo <<'EOF'
[powertools]
name=CentOS Stream 8 - PowerTools - Aliyun
baseurl=https://mirrors.aliyun.com/centos/8-stream/PowerTools/$basearch/os/
gpgcheck=0
enabled=1
EOF

dnf clean all -y
dnf makecache -y

# EPEL
dnf install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm

# 依赖
dnf install -y iptables libcgroup container-selinux --enablerepo=epel

# Docker 官方仓库 + 安装
dnf install -y dnf-plugins-core
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin --nobest

# 启动并验证
systemctl enable --now docker
docker version || true
echo "Run: docker run hello-world"

版本与更新

  • 文档更新时间:2025-10
  • 适配对象:CentOS Stream 8(如为 CentOS Linux 8,建议迁移至 Rocky/Alma 8 再安装 Docker)
相关推荐
SKH.19 分钟前
Linux驱动-led、beep
linux·运维·单片机
TTATTC27 分钟前
Android 浏览器死活不弹证书框的那天,我用 .NET MAUI 给 WebView 写了一个 mTLS 拦截器
docker·开源
TTATTC29 分钟前
百万行 Trace 交给 AI,方向和验证留给人,一套还原自定义 VMP 保护的分工方法
docker·开源
mklpo14737 分钟前
为不支持sse4.2命令集的老旧设备制作Win11 26H2系统镜像,2026-10-11。
运维·windows·python
TTATTC41 分钟前
从 proxy_pass 末尾斜杠到 WebAssembly 预压缩:深挖 Nginx 生产环境四大高频踩坑点
docker·开源
TTATTC1 小时前
消灭 AI 编程助手的幻觉代码:拆解 Google 官方文档 MCP 与三大云厂商知识检索架构
docker·开源
碧海银沙音频科技研究院1 小时前
炬芯ATS308X的扩音器:麦克风到扬声器直通功能实现
java·linux·运维
Wang's Blog1 小时前
Java 项目部署之 Docker工具快速入门: Docker Compose 初识与安装
java·开发语言·docker
Wang's Blog2 小时前
Java 项目部署之 Docker工具快速入门: 镜像命令从 pull 到 load 的完整实操
java·开发语言·docker