在 Rocky Linux 9.2 上使用 dnf 安装 Docker 全流程详解

文章目录

  • [在 Rocky Linux 9.2 上使用 dnf 安装 Docker 全流程详解](#在 Rocky Linux 9.2 上使用 dnf 安装 Docker 全流程详解)
  • 环境介绍
  • [Docker 与 Rocky Linux 兼容性](#Docker 与 Rocky Linux 兼容性)
  • 安装前准备
  • [添加 Docker 官方仓库](#添加 Docker 官方仓库)
  • [安装 Docker CE](#安装 Docker CE)
  • [启动与配置 Docker](#启动与配置 Docker)
    • 配置daemon.json
    • [启动 Docker 服务](#启动 Docker 服务)
    • [验证 Docker 是否启动成功](#验证 Docker 是否启动成功)
    • [测试 Docker 是否工作正常](#测试 Docker 是否工作正常)
    • [创建软链接,支持 docker-compose 命令](#创建软链接,支持 docker-compose 命令)
  • 常见优化配置
    • [配置非 root 用户使用 Docker](#配置非 root 用户使用 Docker)
    • [配置 Docker 镜像加速器(国内用户)](#配置 Docker 镜像加速器(国内用户))
    • 设置日志轮转
  • [卸载 Docker 及清理](#卸载 Docker 及清理)
  • 常见问题
    • [dnf 找不到 docker-ce 包](#dnf 找不到 docker-ce 包)
    • [启动 Docker 服务失败](#启动 Docker 服务失败)
  • 总结

在 Rocky Linux 9.2 上使用 dnf 安装 Docker 全流程详解

Docker 是当前最流行的容器化平台,广泛应用于开发、测试和生产环境。本文以 Rocky Linux 9.2 为例,详细介绍如何使用 dnf 命令安装 Docker,完成配置并进行基础使用。


环境介绍

  • 操作系统版本:Rocky Linux 9.2 (Blue Onyx)
  • 包管理器:dnf (基于 RPM 的现代包管理工具)
  • Docker 版本:Docker CE(Community Edition,社区版)
  • 目标:安装最新版 Docker,完成基本配置,保证系统稳定运行。

Docker 与 Rocky Linux 兼容性

Rocky Linux 9.x 基于 RHEL 9,Red Hat 系统使用 dnf 作为包管理工具,默认仓库中没有 Docker CE,需添加 Docker 官方仓库,才能安装到最新版的 Docker CE。


安装前准备

系统更新

建议先更新系统,确保软件包是最新:

bash 复制代码
sudo dnf update -y
sudo dnf install -y yum-utils device-mapper-persistent-data lvm2
  • yum-utils 提供 dnf config-manager 工具
  • device-mapper-persistent-datalvm2 是 Docker 依赖的存储驱动包

添加 Docker 官方仓库

Rocky Linux 9 默认没有 Docker CE 包,需要添加 Docker 官方仓库:

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

注意:虽然是 CentOS 的仓库,但 Rocky Linux 兼容性良好,可以正常使用。

国内阿里源

/etc/yum.repos.d/docker-ce.repo

repo 复制代码
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-stable-debuginfo]
name=Docker CE Stable - Debuginfo $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/debug-$basearch/stable
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-stable-source]
name=Docker CE Stable - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/source/stable
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-test]
name=Docker CE Test - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-test-debuginfo]
name=Docker CE Test - Debuginfo $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/debug-$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-test-source]
name=Docker CE Test - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/source/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-nightly]
name=Docker CE Nightly - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-nightly-debuginfo]
name=Docker CE Nightly - Debuginfo $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/debug-$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-nightly-source]
name=Docker CE Nightly - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/source/nightly
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gp

安装 Docker CE

安装 Docker 相关包:

bash 复制代码
dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  • docker-ce:Docker 社区版核心
  • docker-ce-cli:命令行工具
  • containerd.io:Docker 依赖的容器运行时
  • docker-buildx-plugin:构建工具插件
  • docker-compose-plugin:Docker Compose 插件

启动与配置 Docker

配置daemon.json

这一步可以跳过

编辑或新建 /etc/docker/daemon.json 文件,添加国内镜像源:

json 复制代码
{
  "registry-mirrors": [
        "https://docker.wctmd.us.kg",
        "https://glo2la19.mirror.aliyuncs.com",
        "https://docker.m.daocloud.io"
    ],
  "bip": "192.168.1.1/24",
  "data-root": "/data/docker-dir",
  "insecure-registries": ["https://harbor.test.com"]
}

启动 Docker 服务

bash 复制代码
systemctl start docker
systemctl enable docker

验证 Docker 是否启动成功

bash 复制代码
systemctl status docker

测试 Docker 是否工作正常

bash 复制代码
docker run hello-world

看到打印"Hello from Docker!"说明安装成功。

创建软链接,支持 docker-compose 命令

bash 复制代码
ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/bin/
docker-compose version

常见优化配置

配置非 root 用户使用 Docker

为避免每次使用 Docker 都用 sudo,可将用户加入 docker 组:

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

然后退出重新登录或执行:

bash 复制代码
newgrp docker

配置 Docker 镜像加速器(国内用户)

编辑或新建 /etc/docker/daemon.json 文件,添加国内镜像源:

json 复制代码
{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"]
}

然后重启 Docker:

bash 复制代码
sudo systemctl restart docker

设置日志轮转

防止 Docker 日志文件过大导致磁盘占满:

编辑 /etc/docker/daemon.json,添加日志轮转配置:

json 复制代码
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3"
  }
}

重启 Docker 使配置生效。


卸载 Docker 及清理

如果需要卸载 Docker:

bash 复制代码
sudo dnf remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo rm -rf /var/lib/docker /var/lib/containerd

常见问题

dnf 找不到 docker-ce 包

确认仓库已添加,执行:

bash 复制代码
sudo dnf repolist

如果没有 docker-ce 仓库,重新添加:

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

启动 Docker 服务失败

检查日志:

bash 复制代码
sudo journalctl -u docker

确认内核支持 overlay2 存储驱动。


总结

  • Rocky Linux 9.2 安装 Docker 需先添加官方仓库
  • 使用 dnf 安装 Docker CE 及相关插件
  • 配置非 root 用户使用 Docker,提升使用体验
  • 配置镜像加速器和日志轮转,优化运行环境
  • 解决常见安装和启动问题,提高系统稳定性