前言: 有同事问我虚拟机怎么安装不了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 \
删除所有残留配置
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 \
##CentOS 8/9 系统
yum install -y docker-ce-3:26.1.3-1.el9 \
docker-ce-cli-3:26.1.3-1.el9 \
可能遇到的坑:
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
# 复制查出的完整版本号替换安装
补充说明💡
3:是 RPM 的 Epoch 字段,只有docker-ce包带这个前缀,docker-ce-cli无 Epoch 编号,是安装报错的核心containerd.io不指定版本会自动安装匹配 26.1.3 的适配版本,无需额外写版本号- 安装完成校验:
docker --version,输出版本即成功 - 检查当前系统版本 cat /etc/os-release
- 验证版本 docker info
- 其他注意事项,可以留言备注