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;iptableslibcgroup 来自系统仓库。

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)
相关推荐
神梦流1 小时前
GE 引擎的非标准数据流处理:稀疏张量与自定义算子在图优化中的语义保持
linux·运维·服务器
兜兜转转了多少年1 小时前
从脚本到系统:2026 年 AI 代理驱动的 Shell 自动化
运维·人工智能·自动化
MonkeyKing_sunyuhua1 小时前
docker compose up -d --build 完全使用新代码打包的方法
docker·容器·eureka
Lsir10110_2 小时前
【Linux】中断 —— 操作系统的运行基石
linux·运维·嵌入式硬件
醇氧2 小时前
【docker】mysql 8 的健康检查(Health Check)
mysql·docker·容器
技术路上的探险家2 小时前
Ubuntu下Docker与NVIDIA Container Toolkit完整安装教程(含国内源适配)
linux·ubuntu·docker
Doro再努力2 小时前
【Linux操作系统12】Git版本控制与GDB调试:从入门到实践
linux·运维·服务器·git·vim
全栈工程师修炼指南3 小时前
Nginx | stream content 阶段:UDP 协议四层反向代理浅析与实践
运维·网络·网络协议·nginx·udp
Lsir10110_3 小时前
【Linux】进程信号(上半)
linux·运维·服务器
开开心心就好3 小时前
发票合并打印工具,多页布局设置实时预览
linux·运维·服务器·windows·pdf·harmonyos·1024程序员节