Rocky Linux 9 安装 Docker 指南
在 Rocky Linux 9 上通过阿里云 docker-ce 源在线安装 Docker CE 29.8.2,并配置镜像加速与 systemd 管理,含离线安装方案
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
二、工具概览
| 工具 | 说明 | 实测版本 |
|---|---|---|
| dnf | Rocky Linux 9 默认包管理器(yum 为其兼容入口) | 4.14.0 |
| dnf-plugins-core | 提供 config-manager、download 等插件 | 4.3.0-26.el9 |
| docker-ce | Docker 引擎守护进程与客户端 | 29.8.2-1.el9 |
| containerd.io | 底层运行时组件 | 2.3.6-1.el9 |
| docker-buildx-plugin | 构建插件 | 0.37.1-1.el9 |
| docker-compose-plugin | Compose 插件 | 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/
七、常见问题与真实行为
-
dnf config-manager --add-repo报 404:阿里云镜像站当前不提供docker-ce.repo定义文件,属正常现象。按 3.2 节手写仓库文件即可,baseurl 用https://mirrors.aliyun.com/docker-ce/linux/rhel/9/$basearch/stable。 -
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,修正后安装正常。 -
dnf install curl与 curl-minimal 冲突:Rocky Linux 9 预装 curl-minimal,安装 curl 会触发冲突。日常下载用 curl-minimal 即可,勿强行替换。 -
overlay2 存储驱动挂载失败:部分文件系统下 dockerd 启动报
invalid argument。在/etc/docker/daemon.json中配置"storage-driver":"vfs"后恢复正常。真实服务器默认仍为 overlay2。 -
拉取镜像超时: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
九、参考链接
- Docker 官方安装文档:https://docs.docker.com/engine/install/centos/
- 阿里云 Docker CE 镜像源:https://mirrors.aliyun.com/docker-ce/linux/centos/