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)
相关推荐
威迪斯特31 分钟前
CentOS图形化操作界面:理论解析与实践指南
linux·运维·centos·组件·图形化·桌面·xserver
一方热衷.36 分钟前
在线安装对应版本NVIDIA驱动
linux·运维·服务器
独自归家的兔39 分钟前
ubuntu系统安装dbswitch教程 - 备份本地数据到远程服务器
linux·运维·ubuntu
ONE_SIX_MIX42 分钟前
ubuntu 24.04 用rdp连接,桌面黑屏问题,解决
linux·运维·ubuntu
龙飞0542 分钟前
Systemd -systemctl - journalctl 速查表:服务管理 + 日志排障
linux·运维·前端·chrome·systemctl·journalctl
春日见1 小时前
如何创建一个PR
运维·开发语言·windows·git·docker·容器
DARLING Zero two♡1 小时前
告别 Docker 命令行!Portainer+cpolar 让容器管理从局域网走向公网
运维·docker·容器
消失的旧时光-19431 小时前
Linux 编辑器入门:nano 与 vim 的区别与选择指南
linux·运维·服务器
斯普信专业组1 小时前
构建基于MCP的MySQL智能运维平台:从开源服务端到交互式AI助手
运维·mysql·开源·mcp
liu****2 小时前
2.深入浅出理解虚拟化与容器化(含Docker实操全解析)
运维·c++·docker·容器·虚拟化技术