Docker 学习之路-Linux安装指定版本docker

前言: 有同事问我虚拟机怎么安装不了docker?

实际上,不同的系统centos/ubantu ..,安装不一定是相同的。

这里指定docker版本:Docker 26.1.3

apt 是 Ubuntu/Debian 系列的包管理工具:

1. 更新系统并安装依赖

apt update && apt upgrade -y

apt install ca-certificates curl gnupg lsb-release -y

2. 添加 Docker 官方 GPG 密钥(确保下载源可信)

mkdir -p /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg

3. 添加 Docker 官方软件源

echo "deb arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null

4. 更新源并安装指定版本(26.1.3)的 Docker 组件

apt update

安装 docker-ce、docker-ce-cli、containerd.io 均指定 26.1.3 版本

apt install -y \

docker-ce=5:26.1.3-1~ubuntu.(lsb_release -rs)\~(lsb_release -cs) \

docker-ce-cli=5:26.1.3-1~ubuntu.(lsb_release -rs)\~(lsb_release -cs) \

containerd.io=1.6.28-1 \

docker-compose-plugin

5. 锁定版本(防止后续 apt upgrade 自动升级 Docker)

apt-mark hold docker-ce docker-ce-cli containerd.io

CentOS9:

📌 步骤 1:先卸载当前服务器上的所有 Docker 残留(如果有)

卸载旧版本

yum remove -y docker \

docker-client \

docker-client-latest \

docker-common \

docker-latest \

docker-latest-logrotate \

docker-logrotate \

docker-engine \

docker-ce \

docker-ce-cli \

containerd.io

删除所有残留配置

rm -rf /var/lib/docker /etc/docker /root/.docker

📌 步骤 2:配置阿里云 Docker Yum 源

yum install -y yum-utils

使用的是阿里云镜像

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

#清理缓存

yum makecache

📌 步骤 3:查看可用的 Docker 版本,确认 26.1.3 存在

yum list docker-ce --showduplicates | grep 26.1.3

你会看到类似这样的结果(CentOS 7 示例):

plaintext

docker-ce.x86_64 3:26.1.3-1.el7 docker-ce-stable

📌 步骤 4:安装指定版本(和另一台服务器保持一致)

##CentOS 7 系统

yum install -y docker-ce-3:26.1.3-1.el7 \

docker-ce-cli-3:26.1.3-1.el7 \

containerd.io

##CentOS 8/9 系统

yum install -y docker-ce-3:26.1.3-1.el9 \

docker-ce-cli-3:26.1.3-1.el9 \

containerd.io

可能遇到的坑:

复制代码
yum list docker-ce --showduplicates | grep 26.1.3

yum install -y docker-ce-3:26.1.3-1.el9 \
    docker-ce-cli-3:26.1.3-1.el9 \
    containerd.io

直接执行盲目执行结果如下:

问题原因

docker-ce-cli 的版本号写法不能直接照搬 docker-ce带 epoch 前缀3:yum对两个包的版本字段识别规则不一样,所以提示找不到包。已经确认源里存在 docker-ce.x86_64 3:26.1.3-1.el9,只需要修正安装命令。


正确安装命令(CentOS Stream9)

bash 运行

复制代码
yum install -y \
docker-ce-3:26.1.3-1.el9 \
docker-ce-cli-26.1.3-1.el9 \
containerd.io

要点:docker-ce-cli 去掉版本前面的3: ,只写26.1.3-1.el9


备选方案(先查 cli 完整版本)

如果上面命令仍报错,先查询 cli 可用版本再安装:

bash

运行

复制代码
# 查看docker-ce-cli所有版本
yum list docker-ce-cli --showduplicates | grep 26.1.3
# 复制查出的完整版本号替换安装

补充说明💡

  1. 3:是 RPM 的 Epoch 字段,只有docker-ce包带这个前缀,docker-ce-cli无 Epoch 编号,是安装报错的核心
  2. containerd.io不指定版本会自动安装匹配 26.1.3 的适配版本,无需额外写版本号
  3. 安装完成校验:docker --version,输出版本即成功
  4. 检查当前系统版本 cat /etc/os-release
  5. 验证版本 docker info
  6. 其他注意事项,可以留言备注
相关推荐
瞬间&永恒~3 分钟前
【Docker】(四)Namespace 详解
运维·docker·容器
DevangLic10 分钟前
monkeycode-使用说明
学习·ai
就改了14 分钟前
Docker安装并运行Redis
redis·docker·容器
red_redemption1 小时前
自由学习记录(211)
学习
yagami_gagami2 小时前
第四届黄河流域公安院校电子物证个人赛服务器取证
linux·服务器·网络·mysql·安全·docker·llama
ThsPool2 小时前
【ENVI二次开发学习整理 02】IDL语言基础与程序设计
学习·中间件
小挪号底迪滴2 小时前
Docker 多阶段构建实战:让 Python 镜像更小、更快、更安全
python·安全·docker
风曦Kisaki2 小时前
Kubernetes(K8s)笔记Day07: StatefulSet 有状态控制器详解与使用案例
linux·docker·云原生·容器·kubernetes
一只小菜鸡..2 小时前
南京大学 操作系统 (JYY) 学习笔记:文件系统实现——从 FAT、ext2 到现代 B-Tree 黑科技
笔记·科技·学习
深爱水瓶 血影S狂风3 小时前
Linux.NET学习手记(2)
linux·学习·.net