首页/云/云与容器速查/docker compose 命令(Compose V2)
容器与 Docker106 条

docker compose 命令(Compose V2)

Compose V2 以 docker 插件形式提供,命令为 docker compose(子命令),取代独立的 docker-compose(V1,Python 版已停止维护)。推荐用 compose.yaml 文件名。

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

docker compose 是什么

Compose 是使用一份声明式文件定义并运行多个关联容器的工具:服务、网络、卷、依赖关系与环境变量都写在文件里,一条命令就能把整套环境拉起来。第二版以命令行插件的形式提供,调用方式是作为子命令使用,取代了早期需要单独安装的独立程序,两者命令与参数并不完全兼容。

基本信息

调用方式作为基础命令的子命令使用,随命令行工具一起安装
与旧版对照旧版是独立程序且已停止维护,参数与行为存在差异
推荐文件名通用的编排文件名,也兼容历史命名
常用子命令启动、停止、列表、日志、执行命令、配置校验、构建、拉取、重启
依赖顺序按依赖关系决定启动顺序,等待策略以健康检查为准
变量与覆盖支持环境变量替换与多文件叠加,用于区分不同环境

典型使用场景

  • 本地开发环境:一条命令拉起应用与它依赖的数据库、缓存与消息队列
  • 单机部署:中小规模服务用编排文件管理多容器应用
  • 演示与验收:把整套环境固化下来,交付给他人一键运行
  • 测试环境准备:测试开始前一键拉起干净的依赖服务
  • 配置校验:渲染并检查最终配置,确认变量替换与覆盖是否符合预期
  • 批量操作:对整套服务做统一的日志查看、重启与停止

常用子命令速查

子命令作用备注
up创建并启动服务常与后台运行和构建参数搭配
down停止并删除容器与网络注意卷是否一起删除
ps查看服务状态确认是否按预期运行
logs查看日志可按服务名单独查看
exec在运行中的服务容器内执行命令与容器命令行工具用法一致
config渲染并校验最终配置排查变量替换问题最有效
build 与 pull构建或拉取镜像发布前预热的常用两步

基本流程

基本流程
docker compose up -d                       # 后台启动全部服务
docker compose ps                          # 查看服务状态
docker compose logs -f web                 # 跟随某个服务的日志
docker compose config                      # 渲染并校验最终配置
docker compose down                        # 停止并删除容器与网络
# 迁移脚本时按新版命令的帮助逐项核对比参数名
两版参数不完全兼容:迁移时逐项核对而不是简单替换命令名,尤其是变量解析、重启策略与依赖等待这些行为差异。
服务器上只装了旧版却按新版文档执行命令,会报未知子命令:先确认实际版本,再决定脚本写法。
删除操作会连网络一起清理:有外部依赖的服务要注意重建后地址是否变化,必要时给网络固定名称。
渲染校验是排查配置问题最快的一步:变量没替换、覆盖没生效这类问题,看渲染结果比反复启动试错有效得多。

运维配套动作

  • 把编排文件纳入版本管理,与镜像版本一起发布
  • 为服务配置健康检查,启动等待参数才有实际意义
  • 用环境变量文件区分环境,避免把差异写死在文件里
  • 把日志与数据卷固定命名,重建时不至于丢失数据
  • 定期核对运行的编排版本与实际文件是否一致

易错点

  • 混用两版命令与文件写法,同一份配置在不同环境解析结果不同
  • 服务器上只有旧版却按新版文档操作,报未知命令后去怀疑镜像
  • 删除编排时连同数据卷一起删掉,本地数据无法恢复
  • 修改配置后直接重启服务,旧容器被复用导致改动不生效
  • 依赖关系不写清楚,应用启动时依赖还没就绪,启动即失败

数据来源与参考

  • Docker Docs:docker compose CLI
  • Compose Spec

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌