问题根源分析
您遇到的错误是 Docker Engine v29 的重大变更导致的,这是一个兼容性问题而非配置错误:
- Docker Desktop 最新版包含了 Docker Engine v29(近期发布)
- 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 发行说明页面
- 找到包含 Engine v28.5.2 的版本
- 点击 Windows 下载链接
- 禁用自动更新(防止再次升级):
- Docker Desktop 设置 → Software Updates → 取消勾选 "Automatically check for updates"
安装并验证:
docker --version # 应显示 Docker version 28.5.x
方案二:为 Traefik 设置环境变量(临时方案)
如果您的项目使用 Traefik,可以在 docker-compose.yml 中强制指定 API 版本:
services:
traefik:
image: traefik:v2.11 # 或 latest
environment:
- DOCKER_API_VERSION=1.44 # 关键配置
volumes:
- /var/run/docker.sock:/var/run/docker.sock # ... 其他配置
此方法无需降级 Docker,但需要每次启动服务时都设置该环境变量。
方案三:升级项目依赖
根据您的项目类型选择升级:


