升级 docker compose 应优先采用插件模式 docker compose(v2.36.1+),弃用旧版 docker-compose;需确认安装类型、通过 apt 或手动替换二进制升级,并验证 yaml 语法、环境变量、镜像拉取及依赖逻辑兼容性。

升级 Docker Compose 本身不难,关键在于选对方式、避开版本混用陷阱,并确保你自己的 docker-compose.yml 和环境配置(如 .env)在新版本下仍能正常工作。最新稳定版(截至 2026 年中)已全面转向 docker compose(插件形式),旧的 docker-compose(Python 包)已被弃用。
确认当前安装类型和版本
先弄清你用的是哪种 Compose:
- 运行
docker-compose --version—— 若显示类似docker-compose version 1.29.2,说明你还在用已停更的 Python 版本; - 运行
docker compose version—— 若能成功返回Docker Compose version v2.36.1或更高,说明已启用插件模式,这是推荐路径; - 两者共存时,
docker compose(无短横线)优先被调用,但旧命令可能残留,建议清理干净。
升级到最新插件版(Ubuntu/Debian 推荐)
如果你当前是插件版,直接用系统包管理器升级最稳妥,兼容性好且自动处理依赖:
- 更新源并升级插件:
sudo apt update && sudo apt install --only-upgrade docker-compose-plugin - 验证:
docker compose version应显示 v2.36.x 或更新版本; - 无需修改原有
docker-compose.yml文件——v2 完全兼容 v3.x 格式,包括deploy、profiles、healthcheck等常用字段。
替换二进制文件(适用于定制或离线环境)
若需指定版本(如 v2.36.1)或无法联网更新,可手动下载:
- 从 GitHub Releases 页面 下载对应系统的二进制文件(如
docker-compose-linux-x86_64); - 重命名为
docker-compose(注意:插件模式实际调用的是docker compose,但该文件名仅用于兼容旧脚本); - 赋予执行权限并覆盖系统路径:
sudo chmod +x docker-compose && sudo mv docker-compose /usr/libexec/docker/cli-plugins/docker-compose(这是插件标准路径); - 重启终端或运行
docker compose version确认生效。
检查与保持配置兼容性
升级后不是万事大吉,几个易忽略但影响启动的点要快速验证:
-
YAML 语法严格性提升:新版对缩进、空格、冒号后空格更敏感,运行
docker compose config可提前发现格式错误; -
环境变量引用必须显式:避免
${VAR}未定义时报错,建议统一用${VAR:-default}或确保.env文件存在且加载正确; -
镜像拉取行为变化:v2.36+ 默认启用
--lock-image-digests(可选),若你依赖:latest动态更新,需在up时加--no-lock,或改用带摘要的镜像标签; -
服务依赖等待逻辑优化:如果用了
depends_on: condition: service_started,确认依赖服务确实已就绪,必要时加健康检查(healthcheck)配合restart策略。
升级完成后,建议在测试目录运行一次 docker compose up -d 并查日志:docker compose logs --tail=20,确认所有服务正常启动。配置兼容性问题大多出现在第一步 config 验证和启动日志里,及时发现比事后排查高效得多。











