Rocky Linux 9 安装 Docker 指南

在 Rocky Linux 9 上通过阿里云 docker-ce 源在线安装 Docker CE 29.8.2,并配置镜像加速与 systemd 管理,含离线安装方案

Rocky LinuxRocky LinuxLinux系统2026/10/07

Rocky Linux 9 安装 Docker 指南

目标:在 Rocky Linux 9 上通过阿里云 docker-ce 源在线安装,以及离线 rpm 包、离线静态二进制包安装 Docker CE 29.8.2,并配置国内镜像加速、systemd 管理。所有命令与回显均为 Rocky Linux 9.8 (Blue Onyx) x86_64 实测结果。

一、环境信息

本机环境实测信息如下:

NAME="Rocky Linux"
VERSION="9.8 (Blue Onyx)"
VERSION_ID="9.8"
ID="rocky"
PRETTY_NAME="Rocky Linux 9.8 (Blue Onyx)"
架构:x86_64
RPM version 4.16.1.3
dnf 版本:4.14.0(dnf-0:4.14.0-34.el9_8.rocky.0.1.noarch)

安装完成后的 Docker 版本:

Docker version 29.8.2, build 7fc2dff

二、工具概览

工具说明实测版本
dnfRocky Linux 9 默认包管理器(yum 为其兼容入口)4.14.0
dnf-plugins-core提供 config-manager、download 等插件4.3.0-26.el9
docker-ceDocker 引擎守护进程与客户端29.8.2-1.el9
containerd.io底层运行时组件2.3.6-1.el9
docker-buildx-plugin构建插件0.37.1-1.el9
docker-compose-pluginCompose 插件5.6.0-1.el9

三、在线安装(阿里云源)

Docker 官方源(download.docker.com)在国内网络环境无法直接访问,推荐使用阿里云镜像站。Rocky Linux 9 使用 rhel/9 通道。

3.1 安装 dnf-plugins-core

dnf install -y dnf-plugins-core

实测回显(节选):

Installed:
  dnf-plugins-core-4.3.0-26.el9.noarch
Complete!

3.2 添加 docker-ce 仓库

执行 dnf config-manager --add-repo 添加阿里云提供的仓库定义文件:

dnf config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/rhel/9/docker-ce.repo

实测回显:

Adding repo from: https://mirrors.aliyun.com/docker-ce/linux/rhel/9/docker-ce.repo
Status code: 404 for https://mirrors.aliyun.com/docker-ce/linux/rhel/9/docker-ce.repo (IP: 119.167.193.16)
Error: Configuration of repo failed

阿里云镜像站当前未提供 docker-ce.repo 定义文件(404),此时需要手写仓库文件,baseurl 指向阿里云 rhel/9 通道:

cat > /etc/yum.repos.d/docker-ce.repo <<'EOF'
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/rhel/9/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/rhel/gpg
EOF

注意:gpgkey 必须指向 https://mirrors.aliyun.com/docker-ce/linux/rhel/gpg(阿里云该目录下无 rhel/9/gpg,实测返回 404)。

导入 GPG 密钥:

rpm --import https://mirrors.aliyun.com/docker-ce/linux/rhel/gpg

验证仓库是否生效:

dnf repolist

实测回显:

repo id                             repo name
appstream                           Rocky Linux 9 - AppStream
baseos                              Rocky Linux 9 - BaseOS
docker-ce-stable                    Docker CE Stable - x86_64

3.3 安装 docker-ce

dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

实测回显(节选):

(1/22): docker-buildx-plugin-0.37.1-1.el9.x86_6  12 MB/s |  18 MB     00:01
(2/22): docker-ce-29.8.2-1.el9.x86_64.rpm        13 MB/s |  26 MB     00:01
(3/22): docker-ce-cli-29.8.2-1.el9.x86_64.rpm   6.0 MB/s | 8.9 MB     00:01
(7/22): docker-compose-plugin-5.6.0-1.el9.x86_6  10 MB/s | 8.4 MB     00:00
(11/22): containerd.io-2.3.6-1.el9.x86_64.rpm    9.8 MB/s |  35 MB     00:03
Complete!

验证安装版本:

docker --version
docker compose version

实测回显:

Docker version 29.8.2, build 7fc2dff
Docker Compose version v5.6.0

注意:不要执行 dnf install curl,Rocky Linux 9 自带 curl-minimal,二者冲突会导致依赖报错。系统预装 curl-minimal 即可满足日常下载需求。

四、离线安装(rpm 包、静态 tgz)

无法连接外网的环境可使用离线安装,两种方式任选。

4.1 离线 rpm 包方案

在可联网机器上用 dnf download 下载依赖完整的 rpm 包:

mkdir -p /opt/offline-rpm
dnf download docker-ce docker-ce-cli containerd.io --destdir=/opt/offline-rpm --resolve

实测回显(节选):

(1/3): docker-ce-cli-29.8.2-1.el9.x86_64.rpm     12 MB/s | 8.9 MB     00:00
(2/3): docker-ce-29.8.2-1.el9.x86_64.rpm         13 MB/s |  26 MB     00:01
(3/3): containerd.io-2.3.6-1.el9.x86_64.rpm      15 MB/s |  35 MB     00:02

下载结果:

-rw-r--r-- 1 root root  35M containerd.io-2.3.6-1.el9.x86_64.rpm
-rw-r--r-- 1 root root  26M docker-ce-29.8.2-1.el9.x86_64.rpm
-rw-r--r-- 1 root root 8.9M docker-ce-cli-29.8.2-1.el9.x86_64.rpm

将整个 /opt/offline-rpm 目录拷贝到离线机器后执行:

dnf install -y /opt/offline-rpm/*.rpm

4.2 离线静态二进制包方案

阿里云镜像站提供 Docker 静态二进制包,当前可下载的最新版本为 29.7.2:

mkdir -p /opt/offline-tgz
curl -fSL -o /opt/offline-tgz/docker-29.7.2.tgz https://mirrors.aliyun.com/docker-ce/linux/static/stable/x86_64/docker-29.7.2.tgz

解压并验证:

mkdir -p /opt/offline-tgz/extracted
tar -xzf /opt/offline-tgz/docker-29.7.2.tgz -C /opt/offline-tgz/extracted
ls /opt/offline-tgz/extracted/docker/

实测回显:

containerd
containerd-shim-runc-v2
ctr
docker
docker-init
docker-proxy
dockerd
runc

验证二进制可用:

/opt/offline-tgz/extracted/docker/docker --version

实测回显:

Docker version 29.7.2, build a7dcaa6

将 docker/ 目录下所有二进制拷入 /usr/bin/ 并赋予可执行权限,即可完成部署。

实测发现阿里云静态目录并非覆盖所有版本(29.8.x 尚未同步,请求 29.8.2 返回 404),以目录中实际存在的版本为准。

五、配置国内镜像加速与 systemd 管理

5.1 配置镜像加速

Docker Hub(registry-1.docker.io)在国内网络环境不可直连,需配置镜像加速器。修改 /etc/docker/daemon.json:

mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<'EOF'
{"registry-mirrors":["https://docker.1ms.run","https://docker.m.daocloud.io"],"storage-driver":"vfs"}
EOF
  • registry-mirrors:镜像加速地址列表,拉取镜像时优先访问。
  • storage-driver:存储驱动。真实服务器默认使用 overlay2;若主机文件系统不支持 overlay 挂载(报 invalid argument),可配置为 vfs。vfs 性能低于 overlay2,仅在必要时使用。

5.2 systemd 管理 Docker 服务

真实服务器通过 systemd 管理 Docker 守护进程:

systemctl enable docker
systemctl start docker
systemctl status docker

预期输出(真实服务器回显样式):

Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.
● docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: disabled)
     Active: active (running) since ...

⚠️ 本文实测环境为无 systemd 的轻量环境,上述 systemctl 命令以真实服务器命令书写,验证工作在本文中以手动启动 dockerd 后台进程方式完成,命令本身与真实服务器完全一致。

无 systemd 环境下手动启动 dockerd 的方式(与 systemd 等效):

nohup dockerd > /var/log/dockerd.log 2>&1 &

六、验证运行

拉取并运行 hello-world 验证引擎可用(依赖镜像加速):

docker run --rm hello-world

实测回显:

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
4f55086f7dd0: Pull complete
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

查看引擎详细信息:

docker info

实测回显(节选):

Client: Docker Engine - Community
 Version:    29.8.2
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.37.1
  compose: Docker Compose (Docker Inc.)
    Version:  v5.6.0

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 1
 Server Version: 29.8.2
 Storage Driver: vfs
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 2
 Swarm: inactive
 Runtimes: runc io.containerd.runc.v2
 Default Runtime: runc
 Kernel Version: 6.8.0-138-generic
 Operating System: Rocky Linux 9.8 (Blue Onyx)
 OSType: linux
 Architecture: x86_64
 CPUs: 6
 Total Memory: 47GiB
 Docker Root Dir: /var/lib/docker
 Registry Mirrors:
  https://docker.1ms.run/
  https://docker.m.daocloud.io/

七、常见问题与真实行为

  1. dnf config-manager --add-repo 报 404:阿里云镜像站当前不提供 docker-ce.repo 定义文件,属正常现象。按 3.2 节手写仓库文件即可,baseurl 用 https://mirrors.aliyun.com/docker-ce/linux/rhel/9/$basearch/stable。

  2. gpgkey 下载 404:首次安装时若 gpgkey 写成 .../rhel/9/gpg,会报 Status code: 404 for https://mirrors.aliyun.com/docker-ce/linux/rhel/9/gpg 且事务中止。阿里云该密钥实际位于 https://mirrors.aliyun.com/docker-ce/linux/rhel/gpg,修正后安装正常。

  3. dnf install curl 与 curl-minimal 冲突:Rocky Linux 9 预装 curl-minimal,安装 curl 会触发冲突。日常下载用 curl-minimal 即可,勿强行替换。

  4. overlay2 存储驱动挂载失败:部分文件系统下 dockerd 启动报 invalid argument。在 /etc/docker/daemon.json 中配置 "storage-driver":"vfs" 后恢复正常。真实服务器默认仍为 overlay2。

  5. 拉取镜像超时:registry-1.docker.io 不可直连,必须配置 registry-mirrors(见 5.1 节)后重启 dockerd。配置生效后 docker pull 正常。

八、卸载方式

卸载 Docker 引擎及相关组件:

dnf remove -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras

清理残留数据(卸载后执行,注意该目录含全部镜像与数据卷):

rm -rf /var/lib/docker

移除仓库文件:

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

九、参考链接

Rocky Linux 9 安装 Docker 指南 - Quzuo