最稳妥的docker指定版本安装方式是通过包管理器一次性装齐docker-ce、docker-ce-cli和containerd.io的匹配版本,需先卸载现有套件、准确获取完整版本字符串、严格按输出版本号安装,并验证服务启动与hello-world测试。

安装指定历史版本的 Docker 引擎,核心在于绕过默认安装最新版的行为,精准锁定目标版本号并阻止后续自动升级。不同系统(Ubuntu/Debian vs CentOS/RHEL)操作逻辑一致,但命令细节有差异。关键不是“找安装包”,而是“查可用版本 + 精确安装 + 锁定版本”。
确认系统类型和架构
先明确你用的是哪类系统,这决定后续命令语法:
- Ubuntu 或 Debian:用 apt,版本格式类似
5:26.1.3-1~ubuntu.22.04 - CentOS、RHEL 或 Rocky/AlmaLinux:用 yum 或 dnf,版本格式类似
3:26.1.3-1.el9
运行 lsb_release -a(Ubuntu/Debian)或 cat /etc/os-release(CentOS/RHEL)确认系统代号(如 focal、jammy、el9),这对拼接版本字符串很关键。
卸载旧版并清理残留
避免新旧共存冲突,建议彻底清理:
- Ubuntu/Debian:
sudo apt remove docker-ce docker-ce-cli containerd.io && sudo rm -rf /var/lib/docker /etc/docker - CentOS/RHEL:
sudo yum remove docker-ce docker-ce-cli containerd.io && sudo rm -rf /var/lib/docker /etc/docker
注意:不要跳过清理步骤,尤其 /var/lib/docker 目录残留可能引发启动失败或镜像混乱。
添加官方源并列出可用历史版本
源必须是官方稳定源(非 EPEL 或第三方),才能查到完整历史版本列表:
- Ubuntu/Debian:确保已添加 Docker 官方源(
https://download.docker.com/linux/ubuntu),然后运行apt update && apt-cache madison docker-ce
输出中会显示所有可安装版本,含年份和构建号,例如:docker-ce | 5:24.0.7-1~ubuntu.22.04 | focal/stable | amd64 Packages - CentOS/RHEL:添加源后(如
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo),运行yum list docker-ce --showduplicates | sort -r
你会看到类似:docker-ce.x86_64 3:20.10.24-3.el9 docker-ce-stable
选中你要的那行完整版本字符串——它必须和你的系统代号匹配,否则安装会失败。
精确安装并锁定版本
安装时需同时指定 docker-ce、docker-ce-cli 和 containerd.io 三个组件,且版本号严格一致:
- Ubuntu/Debian 示例(安装 24.0.7):
sudo apt install -y \<br> docker-ce=5:24.0.7-1~ubuntu.22.04 \<br> docker-ce-cli=5:24.0.7-1~ubuntu.22.04 \<br> containerd.io=1.7.20-1
装完立即执行:sudo apt-mark hold docker-ce docker-ce-cli containerd.io - CentOS/RHEL 示例(安装 20.10.24):
sudo yum install -y docker-ce-3:20.10.24-3.el9 docker-ce-cli-3:20.10.24-3.el9 containerd.io-1.7.20-1.el9
锁定命令:sudo yum versionlock add docker-ce docker-ce-cli containerd.io(需先yum install yum-plugin-versionlock)
不锁定的话,下次 apt upgrade 或 yum update 会悄悄升级,导致环境漂移。











