不小心把docker升级到了最新版(29.0.1),然后在一些地方操作(删除编排、构建运行环境等)时,提示:
服务内部错误: stderr: Error response from daemon: client version 1.43 is too old. Minimum supported API version is 1.44, please upgrade your client to a newer version
如何能将docker降级到28.1.1?系统:debian11,1panel版本:v1.10.32-lts
v2可以直接在v1上升级,不需要全新安装是吧?之前的数据会不会有影响?
会有一定的影响 具体你升级的时候有提示
如果确实担心 可以问一下 AI 怎么降级
用AI写了个降级脚本,不用升级了。代码如下:
#!/bin/bash
set -e
TARGET_VER="5:28.1.1-1~debian.11~bullseye"
echo "=== 1. 卸载当前 Docker ==="
apt remove -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin || true
apt autoremove -y || true
echo "=== 2. 更新软件源 ==="
apt update
echo "=== 3. 查看兼容版本的 containerd.io ==="
CONTAINERD_VER=$(apt-cache madison containerd.io | head -n 1 | awk '{print $3}')
echo "检测到 containerd.io 版本: $CONTAINERD_VER"
echo "=== 4. 安装 Docker 28.1.1 ==="
apt install -y \
docker-ce=${TARGET_VER} \
docker-ce-cli=${TARGET_VER} \
containerd.io=${CONTAINERD_VER} \
docker-buildx-plugin \
docker-compose-plugin
echo "=== 5. 锁定版本,避免被自动升级 ==="
apt-mark hold docker-ce docker-ce-cli containerd.io
echo "=== 6. 验证 Docker 版本 ==="
docker --version
echo "=== 完成:Docker 已成功降级并锁定为 28.1.1 ==="
注意:执行前需要在面板中把docker服务停掉。