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)
相关推荐
ms72wx2 小时前
拥抱终端:Linux 新手命令行入门指南
linux·运维·服务器
東雪蓮☆3 小时前
容器生命周期与管理策略
linux·运维·docker
wheeldown4 小时前
【Linux】Linux管道与进程池深度解析:从原理到实战
linux·运维·服务器
数字化顾问5 小时前
探索 Docker/K8s 部署 MySQL 的创新实践与优化技巧——容器化部署深度解析
docker
熙客5 小时前
DevOps简介
运维·devops
XUE-52113145 小时前
BGP实验-路由反射器
linux·运维·网络
東雪蓮☆5 小时前
从安装到上手实战——Docker 基础命令全解析
运维·docker·容器
upgrador6 小时前
Linux内核与设备管理:USB存储驱动usb_storage/uas的安全卸载与复原
linux·运维·安全
tt5555555555557 小时前
Linux虚拟机固定IP超详细教程
linux·运维·tcp/ip