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

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
└── LICENSE4. 安装
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 给出的快速开始路径:
- 用
Dockerfile定义应用环境,使其能在任何地方复现 - 在
compose.yaml中定义组成应用的各个服务,使它们能在隔离环境中一起运行 - 运行
docker compose up,Compose 启动并运行整个应用
一个 Compose 文件如下所示:
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
redis:
image: redis5.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: 5sdepends_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 [服务名] 跟踪指定服务日志,组合使用即可掌握整个应用栈的运行状况。