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. 其他注意事项,可以留言备注
相关推荐
「維他檸檬茶」1 小时前
大模型算法学习6.3
学习
数智工坊1 小时前
周志华《Machine Learning》学习笔记--第五章--神经网络
人工智能·笔记·神经网络·学习·机器学习
IT策士2 小时前
第 40 篇 k8s之Helm:编写自定义 Helm Chart
云原生·容器·kubernetes
博览鸿蒙2 小时前
[特殊字符]AI+FPGA 全栈学习大纲【就业版】定位
人工智能·学习·fpga开发
红藕香残玉簟秋2 小时前
【Rust学习】windows安装rust
开发语言·学习·rust
ZC跨境爬虫2 小时前
跟着 MDN 学CSS day_49:定位实例练习从入门到精通
前端·css·学习
三品吉他手会点灯2 小时前
C语言学习笔记 - 45.运算符和表达式 - 运算符3 - 逻辑运算符
c语言·笔记·学习
木雷坞2 小时前
自托管 n8n:Docker Compose、Webhook 和升级备份排查
运维·容器
SilentSamsara2 小时前
高并发 API 压测与调优:locust + 火焰图 + 瓶颈定位
开发语言·python·青少年编程·docker·中间件