Docker,Docker Compose,kubectl最近遇到的版本问题
通常来说,一直在用同样的版本。
用的是火山引擎的ECS,系统版本是ubuntu 24.02
所以我安装docker直接就是
apt update
apt install docker-io
安装完毕
docker ps
结果
root@master:~# docker ps
Error response from daemon: client version 1.41 is too old. Minimum supported API version is 1.44, please upgrade your client to a newer version
一看,客户端的版本太老了
我看看docker 版本信息
docker version
Client: Version: 29.1.3
API version: 1.52
Go version: go1.24.4
Git commit: 29.1.3-0ubuntu3~22.04.1
Built: Fri Mar 6 11:37:07 2026 OS/Arch: linux/amd64
Context: default
Server:
Engine:
Version: 29.1.3 API
version: 1.52 (minimum version 1.44)
Go version: go1.24.4 Git
commit: 29.1.3-0ubuntu3~22.04.1
Built: Fri Mar 6 11:37:07 2026 OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 2.2.1
GitCommit:
runc:
Version: 1.3.4-0ubuntu1~22.04.1
GitCommit: docker-init:
Version: 0.19.0
GitCommit:
这里就看出问题来了,就是客户端的版本太低了
要么换客户端,要么换服务端
我原来的系统是可以的,于是我查了一下我原来的版本
Client:
Version: 28.2.2
API version: 1.50
Go version: go1.23.1
Git commit: 28.2.2-0ubuntu1~24.04.1
Built: Wed Sep 10 14:16:39 2025 OS/Arch: linux/amd64 Context: default
也就是28.2.2这个版本不严格要求客户端版本
所以我安装这个版本就好了。
我直接安装还不行,因为没有源。
怎么安装呢?
走官方的方式咯,添加源
apt update
apt install -y ca-certificates curl gnupg
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu jammy stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update
# 可以看到有版本了
apt-cache madison docker-ce
# 我要装的版本
apt install -y \
docker-ce=5:28.2.2-1~ubuntu.22.04~jammy \
docker-ce-cli=5:28.2.2-1~ubuntu.22.04~jammy \
containerd.io
也可以参考官方文档
https://docs.docker.com/desktop/setup/install/linux/ubuntu/
我也是直接apt安装的
但是运行我的docker-compse.yaml的时候报错了
Not supported URL scheme http+docker
我查了一下,嘿嘿,发现新的玩意,可以不依赖于python的docker compose
安装
apt remove docker-compose
apt install docker-compose-plugin
docker compose up -d
可以使用了
注意:
docker compose还有Kubectl的也是,我的版本太低了,因为一直用同样的版本,不报错,基本上不会去更新。
以上就是今天的经验了。



