在自有 Docker 主机之间部署和扩展容器化应用,基于 WireGuard 组网,无需 Kubernetes 或 Swarm。
docker/compose
用一个 Compose 文件定义并运行多容器 Docker 应用的命令行工具。
- Star
- 38,466
- Fork
- 5,883
- 未关闭 Issue
- 103
- 最近提交
- 3天前
这是什么?
Docker Compose 用于定义和运行由多个容器组成的应用。你可以在遵循 Compose 规范的 YAML 文件中描述 Web 服务、数据库、缓存等各个服务,然后执行 `docker compose up` 一次性创建并启动所有服务,无需逐条手动执行 `docker run`。
Compose 文件可以指定每个容器的镜像或构建方式、端口映射、数据卷以及服务之间的连接关系。项目使用 Go 编写,以 Docker CLI 插件的形式提供,`docker compose` 命令可与常规 Docker 命令并用。Windows 和 macOS 用户可通过 Docker Desktop 直接使用,Linux 则可下载独立二进制文件安装。
项目的旧版 Python 实现保留在 v1 分支中。另外,Docker Swarm 已由 Mirantis 维护,因此部分新版 Compose 功能在 Swarm 中不可用。
核心功能
- 01使用遵循 Compose 规范的单个 YAML 文件定义多容器应用。
- 02通过 `docker compose up` 等命令一次启动、停止或重建应用的所有服务。
- 03为每个服务基于 Dockerfile 构建镜像,或从镜像仓库拉取。
- 04支持 Windows、macOS 和 Linux,可随 Docker Desktop 安装,也提供独立二进制文件。
适用场景
- 在开发者本地同时运行 Web 应用及其数据库和缓存。
- 用共享的 Compose 文件为团队搭建可复现的本地开发环境。
- 在运行测试套件前启动集成测试所需的依赖服务。
快速上手
- 1
在 Windows 或 macOS 上通过 Docker Desktop 安装 Docker Compose
- 2
在 Linux 上,从发布页面下载二进制文件并放入 CLI 插件目录
- 3
在 compose.yaml 文件中定义服务,然后启动应用
docker compose up
使用前须知
- 基于 Python 的 v1 版本仅保留在旧分支中。
- Docker Swarm 用户可能无法使用 Compose 的全部功能。
收录于专题
标签
常见问题
- compose 是什么?
- 用一个 Compose 文件定义并运行多容器 Docker 应用的命令行工具。 Docker Compose 用于定义和运行由多个容器组成的应用。你可以在遵循 Compose 规范的 YAML 文件中描述 Web 服务、数据库、缓存等各个服务,然后执行 `docker compose up` 一次性创建并启动所有服务,无需逐条手动执行 `docker run`。
- compose 可以免费使用吗?用的什么许可证?
- compose 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- compose 还在维护吗?
- 活跃维护中。compose 最近一次提交是在 2026年10月22日。
- compose 适合用来做什么?
- 在开发者本地同时运行 Web 应用及其数据库和缓存。 用共享的 Compose 文件为团队搭建可复现的本地开发环境。 在运行测试套件前启动集成测试所需的依赖服务。
- compose 怎么安装和运行?
- 在 Windows 或 macOS 上通过 Docker Desktop 安装 Docker Compose 在 Linux 上,从发布页面下载二进制文件并放入 CLI 插件目录 在 compose.yaml 文件中定义服务,然后启动应用: docker compose up
- 在哪里获取 compose?
- 源代码和安装说明在 GitHub 上:https://github.com/docker/compose
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
开源容器管理平台,帮助团队在各种环境中运行和管理 Kubernetes 集群。
一款命令行与终端界面工具,可追溯进程、端口、容器或文件的启动来源链。
开源的容器化应用管理系统,用于跨多台主机部署、扩缩容和管理应用。
一款现代化的自托管 Docker 管理网页界面,用于管理容器、镜像和 Compose 项目。
一款工作负载编排工具,可在本地和云上调度运行容器、虚拟机及非容器化应用。