迁移主要在改什么
从独立二进制到插件形式,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 -d | docker compose up -d | 连字符命令改为子命令 |
| docker-compose ps | docker compose ps | 输出列有调整,脚本解析需注意 |
| docker-compose config | docker compose config | 渲染规则更贴近规范 |
| docker-compose build | docker compose build | 走新版构建路径 |
旧版独立二进制已不再维护,迁移的主要工作量在于替换脚本中的命令字符串,以及复核输出解析逻辑。
同一台服务器上同时存在两个版本时,命令命中哪一个并不确定;迁移完成后清理旧二进制,避免后续误用。
迁移检查清单
- 替换脚本、定时任务与文档里的全部旧命令写法
- 回归常用子命令,确认输出格式变化不影响解析脚本
- 复核配置文件的语法与渲染结果,处理废弃字段
- 清理旧二进制并确认命令链路唯一,避免两套并存