macOS 下载、安装 Docker Compose v5.5.1,定义和运行多容器 Docker 应用的官方工具(附安装包docker-compose-darwin-aarch64)

发布于 2026/9/16 · 1 阅读
Docker ComposeDocker容器编排compose.yaml多容器应用docker compose up容器化DevOpsmacOS开源软件
Docker Compose 是 Docker 官方的多容器应用编排工具,用一份 YAML 文件定义服务、网络与数据卷,一条命令即可启动整套应用。本文介绍 v5.5.1 的版本亮点、macOS 安装方式与常用命令,并提供整合包与中文文档。

封面.png

1. Docker Compose 简介

Docker Compose 是 Docker 官方推出的多容器应用定义与运行工具。它的前身是 2014 年发布的开源项目 Fig,被 Docker 公司收购后更名为 Docker Compose,从此成为 Docker 生态的官方组件。早期版本(V1)使用 Python 编写,2021 年起项目用 Go 语言完全重写为 V2,并以 Docker CLI 插件(cli-plugins)的形式分发,命令形态也从独立的 docker-compose 过渡为 Docker 的子命令 docker compose。它所使用的 compose 文件格式后来发展为开放的 Compose Specification 规范,被众多第三方容器工具采纳。多年来,Docker Compose 一直是 Docker 生态中使用最广泛的项目之一,是本地开发、测试与 CI 环境中管理多容器应用的事实标准。

用 Docker Compose 管理应用,只需要一份 YAML 文件(推荐命名为 compose.yaml),即可声明式地描述应用包含的服务(services)、网络(networks)和数据卷(volumes),然后通过一条命令 docker compose up 创建并启动整套应用。不再需要把 docker run 的长串参数敲进终端,也不用为"先启动哪个服务"的顺序问题编写脚本。

Docker Compose v5.5.1 的核心特点:

  • 声明式定义:一份 compose.yaml 描述应用的全部组件,配置即文档,可读、可版本化
  • 一条命令启动整个应用:docker compose up 同时创建并启动所有服务,down 一键清理
  • 单一静态二进制:使用 Go 语言编写,无任何运行时依赖,下载后即可直接使用
  • Docker CLI 插件形态:作为 docker compose 子命令与 Docker 无缝集成,也保留独立的 docker-compose 命令兼容旧脚本
  • 遵循开放规范:跟随 Compose Specification 规范演进,配置文件在各版本间保持兼容
  • 开源免费:基于 Apache License 2.0 许可证发布

2. v5.5.1 版本亮点

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

新特性:生命周期钩子(lifecycle hooks)的输出现在会被捕获并展示出来,钩子执行失败时错误信息中也会包含其输出,排查构建与启动阶段的问题更加直观;通过 --debug 参数可以看到 OpenTelemetry 关闭时的错误信息。

问题修复(节选):

  • compose watch:向符号链接(symlink)目录同步不再直接失败;初始同步会同步全部文件(不再受文件修改时间影响),并排除 Dockerfile 与 compose 文件本身
  • 网络:创建网络时正确传入 IPAM(IP 地址管理)选项
  • docker compose ps:未指定 --format 时,遵循 Docker CLI 配置文件中的 psFormat 设置
  • docker compose down:清理孤儿服务时,与其带标签镜像的处理方式一致,保留悬空镜像(dangling images)
  • 等待依赖服务时的超时错误此前可能不会被暴露出来,现在能够可靠呈现
  • Windows 上构建过程的进度输出修复;上下文取消后终端输出不再挂起

依赖更新:构建工具链升级到 Go 1.26.8,BuildKit 升级到 v0.33.0,compose-go 升级到 v2.15.0,并移除了 buildx 这一 Go 依赖。

3. 获取安装包

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

适用于 Apple Silicon(ARM64,M 系列芯片)的 Mac。若你的 Mac 是 Intel 芯片,请选择 x86_64 版本的整合包。

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

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

4. 安装

本整合包提供的是独立二进制文件,无需运行安装器。将其复制并重命名为 docker-compose,放入用户级 Docker CLI 插件目录,即可作为 docker compose 子命令使用:

mkdir -p ~/.docker/cli-plugins
cp docker-compose-darwin-aarch64 ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose

验证安装:

docker compose version

如果你的 Mac 已安装 Docker Desktop,其中已内置 Docker Compose;本整合包适用于未使用 Docker Desktop 而是自行安装 Docker 环境的场景,或需要单独管理 Compose 版本的用户。

系统依赖:Docker Compose 需要与本机的 Docker 守护进程(Docker Engine)通信才能创建和管理容器,请确保系统中已安装并启动 Docker 环境。

5. 使用

5.1 三步运行一个多容器应用

使用 Docker Compose 只需三步:

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

一份典型的 compose.yaml 如下,其中定义了一个自带代码挂载的 web 服务和一个 redis 服务:

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

5.2 常用命令

命令 作用
docker compose up 创建并启动 compose.yaml 中定义的全部服务
docker compose up -d 以后台模式启动
docker compose ps 查看当前项目的服务与容器状态
docker compose logs -f 跟踪查看全部服务的日志输出
docker compose exec web sh 进入指定服务的容器执行命令
docker compose stop 停止服务,保留容器
docker compose down 停止并删除容器与网络,一键清理

5.3 开发热重载:compose watch

在开发阶段,docker compose watch 可以让本地文件变更自动同步进容器,无需每次修改后手动重新构建或重启服务,是 Compose 面向开发流程的核心能力之一。v5.5.1 对 watch 的初始同步、符号链接目录同步等问题做了多项修复,体验更加稳定。