Windows 下载、安装 Docker Compose v5.5.1,定义和运行多容器 Docker 应用的编排工具(附安装包docker-compose-windows-x86_64.exe)

发布于 2026/9/16 · 1 阅读
Docker ComposeDocker容器编排多容器应用容器化YAMLWindows开源软件开发工具DevOps
Docker Compose 是 Docker 官方的多容器应用编排工具,用一个 YAML 文件定义整套服务,一条命令启动整个应用。v5.5.1 带来生命周期钩子输出捕获、Windows 构建进度修复等 54 项改进与修复。

封面.png

1. Docker Compose 简介

Docker Compose 是 Docker 公司推出的多容器应用编排工具,用于定义和运行由多个容器组成的应用。它的前身 Fig 由 Orchard Laboratories 的 Ben Firshner 于 2013 年创建,2014 年 7 月 Docker 收购 Orchard 后更名为 Compose,成为 Docker 生态中本地容器编排的事实标准。仓库创建于 2013 年 12 月,发展至今已在 GitHub 上获得超过 3.8 万 Star 和 5800 余个 Fork,社区热度长盛不衰。

Docker Compose 的核心思想是"一份文件描述整个应用":开发者把应用的所有服务(Web 前端、后端 API、数据库、缓存等)写在一个 compose.yaml 文件里,声明每个容器使用的镜像、端口、挂载卷和环境变量,然后用一条命令 docker compose up 就能创建并启动整套应用。Comvert 文件格式遵循开放的 Compose 规范(Compose file format),一个 Compose 文件定义了组成应用的各个容器如何配置。

从 2014 年的 v1(Python 实现)到 2022 年的 v2(Go 实现、成为 Docker CLI 插件),再到如今的 v5 系列,Docker Compose 始终保持快速演进,近年来还扩展了对 AI 应用编排等新场景的支持,被广泛用于本地开发、CI/CD 流水线和单机部署。

核心特色:

  • 声明式定义:一个 compose.yaml 文件描述应用的全部服务、网络和数据卷,配置即文档
  • 一键启停docker compose up 启动整个应用栈,docker compose down 一键清理
  • 与 Docker CLI 深度集成:以插件形式运行在 docker compose 命令之下,无需切换工具
  • 开发实时同步:Watch 模式支持文件变更自动同步(sync)、镜像自动重建(rebuild)、容器自动重启(restart),本地改代码容器即时响应
  • 依赖编排:通过 depends_on 和健康检查(healthcheck)声明服务启动顺序与就绪条件
  • Profiles 按需组合:给服务打上 profile 标签,按场景启用服务子集,一套文件适配多种运行形态
  • 环境一致性:从本地开发到 CI/CD 再到生产单机部署,同一份 Compose 文件随处复现
  • 生态广泛:海量开源项目在仓库里直接附带 compose.yaml,克隆下来即可一键运行

2. v5.5.1 版本亮点

该版本汇集了 8 位贡献者的 54 条贡献。

功能改进:

  • 生命周期钩子(lifecycle hook)的输出现在会被捕获并展示,钩子执行失败时其输出也会包含在错误信息中,方便排查
  • 通过 --debug 参数可以查看 OpenTelemetry(otel)关闭时的错误,便于诊断链路追踪问题

Windows 平台修复:

  • 修复了 Windows 上构建时的 TTY 进度显示——现在将真实的 stdout 交给 BuildKit
  • 修复了 Windows 上查找 provider 插件时不遵循 PATHEXT 环境变量的问题

开发体验(watch / hooks)改进:

  • docker compose watch 同步到符号链接(symlink)目录时不再失败
  • 初始同步(initial_sync)阶段会同步全部文件,不再受文件修改时间(mtime)影响,并且排除 Dockerfile 和 compose 文件本身
  • 事件订阅前会先校验服务名称,上下文取消后 ttyWriter.Done 不再挂起

网络、构建与稳定性修复:

  • 创建网络时正确传递 IPAM 配置选项;未指定 --format 时遵循 Docker CLI 配置中的 psFormat
  • 服务依赖等待超时现在能可靠地报告出来,而不是"碰运气"才出现
  • docker compose down 清理孤立服务时,会像保留带标签镜像一样保留其悬空镜像(dangling image)
  • 修复了服务名仅相差 ._ 时 bake 目标名称冲突、每服务 bake 证明中 provenance/sbom 为 false 未生效等多个构建问题

内部与依赖升级:

  • 移除 buildx 作为 Go 直接依赖,引入 BuildKit v0.33.0、compose-go v2.15.0
  • 构建环境升级到 Go 1.26.8,golangci-lint 升级到 v2.13.2

3. 获取安装包

如果访问 GitHub 不便,安装包及中文文档:https://hanshuixin.org/go/2267(内含 docker-compose-windows-x86_64.exe、README 中英对照、发布说明中英对照和 LICENSE)。

Docker Compose 其他版本https://hanshuixin.org/resource/software_integrated_package/Windows/Docker%20Compose

Windows安装compose-v5.5.1(docker-compose-windows-x86_64).zip
├── docker-compose-windows-x86_64.exe
├── Windows安装compose-v5.5.1(docker-compose-windows-x86_64).pdf
├── README/
│   ├── README.md
│   └── README-中文版.md
├── 发布说明/
│   ├── RELEASE-NOTES.md
│   └── RELEASE-NOTES-中文版.md
└── LICENSE

4. 安装

docker-compose-windows-x86_64.exe 是 Docker CLI 的 Compose 插件二进制,配合 Docker 命令行使用,不是双击运行的安装向导。

使用前提:Windows 上需要已安装 Docker Desktop for Windows(或其它可用的 Docker Engine 运行环境)。新版 Docker Desktop 通常已内置 Compose 插件,一般无需手动替换;如需使用整合包中的版本,将 docker-compose-windows-x86_64.exe 重命名为 docker-compose.exe,放入用户目录下的 .docker\cli-plugins\ 文件夹(通常是 %USERPROFILE%\.docker\cli-plugins\)即可。

完成后在终端运行 docker compose version,输出包含 v5.5.1 字样即表示生效。

5. 使用

5.1 三步起步

README 给出的快速开始路径:

  1. Dockerfile 定义应用环境,使其能在任何地方复现
  2. compose.yaml 中定义组成应用的各个服务,使它们能在隔离环境中一起运行
  3. 运行 docker compose up,Compose 启动并运行整个应用

一个 Compose 文件如下所示:

services:
  web:
    build: .
    ports:
      - "5000:5000"
    volumes:
      - .:/code
  redis:
    image: redis

5.2 常用命令

命令 作用
docker compose up -d 在后台创建并启动全部服务
docker compose down 停止并删除容器、网络等资源
docker compose ps 查看各服务运行状态
docker compose logs -f 实时跟踪服务日志
docker compose build 重新构建服务镜像
docker compose pull 拉取服务所需镜像
docker compose restart 重启服务

5.3 开发实时同步(Watch 模式)

compose.yaml 中为服务添加 develop.watch 配置,可以让本地文件变更自动作用于容器,共三种动作:

  • sync:文件变更直接同步进容器,适合源代码热更新
  • rebuild:触发镜像自动重建,适合依赖清单变更(如 package.json
  • restart:配置变更时自动重启容器
services:
  web:
    build: .
    develop:
      watch:
        - action: sync
          path: ./web
          target: /usr/share/nginx/html
        - action: rebuild
          path: ./package.json

使用 docker compose watch 启动即可进入实时同步模式。

5.4 服务依赖与健康检查

通过 depends_on 声明启动顺序,并用健康检查确保依赖服务真正就绪后再启动:

services:
  web:
    depends_on:
      db:
        condition: service_healthy
  db:
    image: postgres
    healthcheck:
      test: ["CMD", "pg_isready"]
      interval: 5s

depends_on 还支持 required: false,把依赖声明为"软依赖",依赖服务缺失时应用仍可启动。

5.5 Profiles 按需启用服务

给服务打上 profile 标签后,默认启动时不会运行它们,需要时通过参数启用:

services:
  app:
    image: myapp
  debug-tools:
    image: busybox
    profiles: ["debug"]

运行 docker compose --profile debug up 即可连同调试服务一起启动,实现一套 Compose 文件适配多种场景。

5.6 运行状态监控

docker compose ps 查看服务状态与端口映射,docker compose top 查看容器内进程,docker compose events 实时观察容器事件流,docker compose logs -f [服务名] 跟踪指定服务日志,组合使用即可掌握整个应用栈的运行状况。