
问题根源分析
您遇到的错误是 Docker Engine v29 的重大变更 导致的,这是一个兼容性问题而非配置错误:
- Docker Desktop 最新版包含了 Docker Engine v29(2025年11月发布)
- v29 将最低支持的 API 版本从 1.24 提升到 1.44
- 您的 Spring Boot 项目中很可能使用了 Traefik 反向代理 或 Spring Boot Buildpacks,这些工具仍在使用旧版 API 1.24
错误信息中的 client version 1.24 并非指您的 Docker 客户端过时,而是指项目中的某个服务(容器)在尝试连接 Docker daemon 时使用了过时的 API 版本。
解决方案(按推荐顺序)
方案一:降级 Docker Desktop(最可靠)
由于问题是由 Docker Engine v29 引起的,降级到 v28.5.2 可以完全解决兼容性问题:
-
卸载当前 Docker Desktop:
- 控制面板 → 程序和功能 → 卸载 Docker Desktop
-
下载旧版本:
- 访问 Docker Desktop 发行说明页面
- 找到 2025年11月6日 发布的版本(包含 Engine v28.5.2)
- 点击 Windows 下载链接
-
安装并验证:
powershelldocker --version # 应显示 Docker version 28.5.x -
禁用自动更新(防止再次升级):
- Docker Desktop 设置 → Software Updates → 取消勾选 "Automatically check for updates"
方案二:为 Traefik 设置环境变量(临时方案)
如果您的项目使用 Traefik,可以在 docker-compose.yml 中强制指定 API 版本:
yaml
services:
traefik:
image: traefik:v2.11 # 或 latest
environment:
- DOCKER_API_VERSION=1.44 # 关键配置
volumes:
- /var/run/docker.sock:/var/run/docker.sock
# ... 其他配置
此方法无需降级 Docker,但需要每次启动服务时都设置该环境变量。
方案三:升级项目依赖
根据您的项目类型选择升级:
如果是 Traefik 问题
-
Traefik v3.6.x 及以上 版本已支持 API 自动协商
-
修改
docker-compose.yml:yamlservices: traefik: image: traefik:v3.6.0 # 或更新版本
如果是 Spring Boot Buildpacks 问题
-
升级到 Spring Boot 3.5.8+
-
在
pom.xml中:xml<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.5.8</version> </parent>
方案四:修改 Docker daemon 配置(Windows 进阶)
Windows 上可以通过修改 daemon.json 临时降低 API 版本要求:
-
找到配置文件:
- 路径:
C:\Users\<您的用户名>\.docker\daemon.json - 如果不存在则创建该文件
- 路径:
-
添加配置:
json{ "min-api-version": "1.24" } -
重启 Docker Desktop:
- 右键系统托盘图标 → Restart
注意:此方法在 Windows 上可能效果有限,因为 Docker Desktop 的 WSL2 后端可能不完全遵循此配置。