首页/云/Docker 容器速查/docker-compose v1 到 compose v2 对照
Compose 编排55 条

docker-compose v1 到 compose v2 对照

从 v1 迁移到 v2 主要是命令形态变化:独立二进制换成 docker compose 子命令,多数参数名保持一致,行为差异点集中在构建与配置解析。

Docker 容器速查云更新于 2026-10-13

迁移主要在改什么

从独立二进制到插件形式,Compose 的迁移主要是命令形态的变化:连字符命令变成容器管理命令的子命令,大多数参数名保持不变。真正的行为差异集中在构建路径与配置解析上:新版本默认走 BuildKit 构建,配置渲染更贴近规范,因此某些依赖旧解析行为的文件需要重新复核一遍。

基本信息

主要变化命令形态从独立二进制改为子命令形式
参数兼容多数参数名保持一致
构建路径改用新版构建流程
配置渲染更贴近规范,旧写法需要复核
环境注意两个版本并存时命令指向不确定

典型使用场景

  • 把脚本与文档里的旧命令写法统一替换
  • 迁移后回归常用命令,确认输出格式变化对解析脚本的影响
  • 服务器上清理旧二进制,避免两个版本并存
  • 复核配置文件里的废弃字段与旧写法
  • 校验渲染结果与预期配置是否一致

迁移后的核对动作

迁移后的核对动作
docker compose version                        # 确认子命令形式可用
docker compose -f docker-compose.yml config -q   # 渲染配置并做语法校验
docker compose up -d --remove-orphans          # 清理孤儿容器,避免旧版本残留
docker compose ps --format json                # 用结构化输出替代文本解析

命令对照

旧用法新用法说明
docker-compose up -ddocker compose up -d连字符命令改为子命令
docker-compose psdocker compose ps输出列有调整,脚本解析需注意
docker-compose configdocker compose config渲染规则更贴近规范
docker-compose builddocker compose build走新版构建路径
旧版独立二进制已不再维护,迁移的主要工作量在于替换脚本中的命令字符串,以及复核输出解析逻辑。
同一台服务器上同时存在两个版本时,命令命中哪一个并不确定;迁移完成后清理旧二进制,避免后续误用。

迁移检查清单

  • 替换脚本、定时任务与文档里的全部旧命令写法
  • 回归常用子命令,确认输出格式变化不影响解析脚本
  • 复核配置文件的语法与渲染结果,处理废弃字段
  • 清理旧二进制并确认命令链路唯一,避免两套并存

易错点

  • 脚本直接解析命令的文本输出:输出列调整会让字段错位,改用结构化输出更稳
  • 新旧版本并存:不同账号执行同名命令可能命中不同实现,行为差异很难复现
  • 迁移后不复核配置文件:解析规则变化可能让原有写法产生不同结果
  • 构建路径变化后不做全量验证:层结构与缓存命中情况会与旧版本不同,需要跑一次完整构建

数据来源与参考

  • Docker 官方文档:Migrate to Compose v2(docs.docker.com/compose/migrate)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌