首页/云/Docker 容器速查/Docker Compose 概览与 v1/v2 差异
Compose 编排55 条

Docker Compose 概览与 v1/v2 差异

Compose 用一份 YAML 描述多容器应用并统一拉起:现代用法是 docker compose 子命令(v2 插件),旧的 docker-compose 独立二进制属 v1 且已停止维护。

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

Compose 是什么

编排工具用一份声明式文件描述多容器应用:每个服务的镜像或构建方式、端口、挂载、环境变量、依赖关系都写在里面,再用一条命令统一创建与启动。它把「手工敲一串启动命令」变成可版本化、可评审、可复现的环境定义。

基本信息

现代用法作为容器引擎的子命令使用,随引擎一起安装
旧用法独立的单文件程序,属于早期版本,已停止维护
文件格式YAML,顶层以服务定义开始
校验方式用配置校验子命令检查语法与解析结果
适用平台Linux / macOS / Windows 上的容器引擎环境

典型使用场景

  • 本地开发环境:数据库、缓存、后端、前端一条命令全部拉起
  • 测试环境复现:把整套依赖关系固化下来,换机器也能一致运行
  • 小型生产部署:服务数量不多时用编排文件管理比手工命令更可靠
  • 环境迁移:编排文件随代码走,迁移时只改少量环境变量
  • 演示与培训:一条命令起全栈演示环境,降低上手门槛

常用命令

常用命令
docker compose version                 # 确认可用与版本
docker compose config --services       # 校验文件并列出服务名
docker compose up -d                   # 后台拉起全部服务
docker compose ps                      # 查看各服务状态
docker compose logs -f web             # 跟踪指定服务日志
docker compose down                    # 停止并删除容器与网络

与手工命令的差别

对比项编排文件方式手工命令方式
可复现性文件进版本库,结果一致依赖执行历史,容易遗漏参数
批量操作一条命令管理整套服务逐个敲命令,顺序容易出错
网络与卷声明式创建,命名有统一前缀手工创建,命名容易冲突
环境差异用变量文件区分环境改动散落在命令与脚本里
协作成本新成员看文件即可理解结构需要口头交接或翻脚本

与上游技术的关系

  • 早期工具是命令行程序的独立版本,现已停止维护,新环境不要再装
  • 现代版本直接调用容器引擎的接口,构建与运行行为与手工命令更一致
  • 集群编排的能力更强,适合多主机与大规模场景,本工具定位在单机多容器
  • 流水线里可用它做集成测试环境,测试结束后统一清理
两种命令写法混用会出现行为差异,脚本与文档统一到现代写法,避免同一份编排在不同人手里表现不同。
编排文件里的服务名会参与容器命名与网络解析。服务名即主机名的设计让容器之间可以用服务名互访,这一点比手工维护地址省事得多。

易错点

  • 沿用旧命令写法,参数与行为和新版本不一致,同一份文件在不同人手里结果不同
  • 把编排文件当成手工命令的替代品却仍手工改容器,改动下次拉起就被覆盖
  • 多人共用同一目录与项目名,容器与网络互相覆盖,排查时定位困难
  • 生产环境直接沿用开发用的编排文件,缺少资源限制与重启策略等必要配置

数据来源与参考

  • Docker 官方文档:Compose 概述与 v1 迁移说明(docs.docker.com/compose)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌