跳至主要内容

如何安装 Docker Compose:Linux、macOS 和 Windows

一份关于在 Linux、macOS 和 Windows 上安装 Docker Compose v2 的实用指南——涵盖包管理器与手动方法、验证步骤、升级及常见错误排查。
· 9分钟 阅读

使用 AI 探索

您已经在运行 Docker,也熟悉基本命令,但是否厌倦了一个接一个地启动容器?

Docker Compose 是一款工具,可让您通过一个 YAML 文件定义并运行多容器应用程序。让人困惑的是,目前有两个版本:旧的独立二进制文件(v1)和较新的 CLI 插件(v2)。大多数安装文章不会说明使用的是哪个版本,导致您按照与自己环境不匹配的步骤操作。

Docker Compose v2 是随现代 Docker 一起提供的插件,这极大简化了安装、运行和验证流程。过程不再像以前那样需要大量手动操作。

本文将带您以正确方式在 Linux、macOS 和 Windows 上安装 Docker Compose——使用 v2。

刚接触虚拟化与容器化概念?请阅读我们的 Docker 入门一文进行上手练习。

安装 Docker Compose 之前

首先,您需要在机器上安装 Docker Engine。Docker Compose 不是独立运行的——它需要依赖 Docker。

运行以下命令检查 Docker 版本:

docker --version

Installed Docker version

已安装的 Docker 版本

如果 尚未安装 Docker,请先暂停并完成安装。如果已安装,您可以检查是否已可用 Compose:

docker compose version

Installed Docker Compose version

已安装的 Docker Compose 版本

如果返回版本号,说明已完成——Compose v2 已随 Docker 安装打包提供。您可以直接跳至验证部分。

如果返回通用的“找不到命令”提示,请继续阅读。

以下是您需要了解的关键区别:

  • Docker Compose v1 是旧版的独立二进制。通过 docker-compose(带连字符)调用。它已被弃用且不再维护。

  • Docker Compose v2 是随现代 Docker 提供的 CLI 插件。通过 docker compose(不带连字符)调用。

如果您的 Docker 安装较新,几乎可以肯定已经具备 v2。本文其余部分均以 v2 为前提。

在 Linux 上安装 Docker Compose

在 Linux 上,您有两种方式获取 Docker Compose。第一种使用 Docker 官方软件源——推荐路径。第二种是手动安装,适用于无法使用包管理器或需要特定版本的情况。

方法一:使用 Docker 官方软件源(推荐)

此方法让 Compose 与 Docker 安装绑定,更新可保持同步。

如果尚未安装 Docker Engine,请先设置 Docker 官方的 apt 软件源:

# Add Docker's GPG key
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update

现在一起安装 Docker Engine 和 Compose 插件:

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

docker-compose-plugin 软件包为您提供了 docker compose CLI 命令。验证其是否可用:

docker compose version

Docker Compose version on Ubuntu VM

Ubuntu 虚拟机上的 Docker Compose 版本

就是这样。

方法二:手动安装(独立二进制)

当您需要特定版本的 Compose,或环境不支持使用 Docker 软件源时,请使用此方法。

先从 GitHub 直接下载最新发行版。将 v5.0.1 替换为您需要的版本:

DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v5.0.1/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose

赋予二进制可执行权限:

chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose

最后,验证安装:

docker compose version

Docker Compose version on Ubuntu VM (2)

Ubuntu 虚拟机上的 Docker Compose 版本

唯一需要记住的是,手动安装不会自动更新。如果您安装了一个二进制后就不再管它,可能会长时间运行带有已知漏洞或安全问题的过时版本。如果选择此路径,请养成不时查看 Docker Compose 发布页的习惯。

在 macOS 上安装 Docker Compose

在 macOS 上,无需单独安装 Docker Compose——它随 Docker Desktop 一起提供。

从 Docker 官方网站下载 Docker Desktop。请务必选择与您的芯片匹配的版本——Apple Silicon(M1-M5)或 Intel。

安装完成后,打开 Docker Desktop 并等待其启动完成。然后运行以下命令验证 Compose 是否可用:

docker compose version

Docker Compose version on macOS

macOS 上的 Docker Compose 版本

完成。Compose v2 已就绪。

可选:通过 Homebrew 安装

如果您更喜欢用 Homebrew 管理工具且不需要完整的 Docker Desktop 图形界面,可通过它安装 Docker 和 Compose:

brew install docker
brew install docker-compose

如果选择此路径,请注意 Homebrew 会在没有 Desktop 应用的情况下安装 Docker Engine。对此类 CLI 使用场景没有问题,但您将缺少 Docker Dashboard 和自动更新等功能。对多数 macOS 用户而言,Docker Desktop 更为省心。

在 Windows 上安装 Docker Compose

与 macOS 一样,Windows 通过 Docker Desktop 自动获得 Docker Compose。无需单独安装。

在安装 Docker Desktop 之前,您需要启用 WSL2(Windows Subsystem for Linux 2)。WSL2 让 Docker 能在 Windows 上运行原生 Linux 内核,这是该平台运行容器的方式。要启用它,请以管理员身份打开 PowerShell 并运行:

wsl --install

根据提示重启机器。然后从 Docker 官方网站下载并安装 Docker Desktop。

安装期间,请确保勾选“Use WSL2 instead of Hyper-V”选项。Docker Desktop 运行后,验证 Compose 是否可用——可在 PowerShell 或 WSL 终端中进行:

docker compose version

常见权限问题

如果遇到“permission denied”错误,通常有以下两种情况:

  • Docker Desktop 未运行。必须先在系统托盘中处于活动状态,任何 docker 命令才会生效。
  • 您的用户不在正确的用户组中。 在 WSL 中,请确保 Linux 用户有权访问 Docker 套接字。您可以通过以管理员身份运行 WSL 终端,或将用户添加到 WSL 内的 docker 组来解决:
sudo usermod -aG docker $USER

随后退出并重新登录 WSL,使更改生效。

验证 Docker Compose 安装

安装好 Docker Compose 后,运行以下命令确认一切正常:

docker compose version

您应会看到类似如下输出:

Installed Compose version

已安装的 Compose 版本

具体版本号会因阅读时间而异,但只要看到 v5.0.1 或更新版本,即可。

如果看到 docker compose: command not found,说明未安装 Compose 或未在 PATH 中。请跳至下方故障排除部分。

docker compose 与 docker-compose 的区别

您可能会注意到一些在线文章使用带连字符的 docker-compose。区别如下:

  • docker-compose 是旧版 v1 命令。它是独立的 Python 二进制,需要与 Docker 分开安装。

  • docker compose(不带连字符)是v2 CLI 插件,直接内置于 Docker CLI。

Docker 已于 2023 年停止支持 v1,因此 docker-compose 不再维护。如果您仍安装了它,可以检查对应的版本:

docker-compose --version

如果返回 1.x.x 版本,说明您在运行旧的二进制。请卸载它,并在今后使用 docker compose。两者命令几乎一致,但 v2 更快且在持续维护。

升级 Docker Compose

如何升级 Compose 取决于您的安装方式。

在 macOS 和 Windows 上,由 Docker Desktop 全权管理,您只需打开应用,进入 Settings > Software Updates,按需更新即可。Compose 会与 Docker 一同自动升级。

在使用包管理器的 Linux 上,运行如下命令:

sudo apt-get update
sudo apt-get upgrade docker-compose-plugin

这会从 Docker 官方软件源获取最新版本。

如果是手动安装,您需要使用新版本号重复下载步骤。请查看 Docker Compose 发布页了解最新版本,然后替换二进制:

curl -SL https://github.com/docker/compose/releases/download/v5.0.2/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose

任何升级后,验证新版本是否生效:

docker compose version

就这些。

卸载 Docker Compose

卸载步骤取决于您最初的安装方式。

如果是在 Linux 上通过包管理器安装,请用以下命令移除插件:

sudo apt-get remove docker-compose-plugin

如果是手动安装,只需删除二进制文件:

rm $DOCKER_CONFIG/cli-plugins/docker-compose

如果系统上仍有旧版 v1 的独立二进制,可用以下命令查找并删除:

sudo rm /usr/local/bin/docker-compose

删除后,运行 docker compose version 再次确认。如果命令返回错误,说明卸载成功。

常见安装问题

安装与卸载 Docker Compose 很简单,但仍可能出现问题。以下是可能遇到的问题及其解决方法。

“docker compose: command not found”

这意味着要么未安装 Compose,要么 Docker 找不到它。首先确认 Docker 本身在运行:

docker --version

如果 Docker 正常而 Compose 缺失,只需重新安装插件:

sudo apt-get install docker-compose-plugin

权限被拒绝错误

如果运行 docker compose 时出现权限被拒绝错误,通常是您的用户没有访问 Docker 套接字的权限。将自己加入 docker 组:

sudo usermod -aG docker $USER

注销并重新登录以使更改生效。在 Docker Desktop(macOS/Windows)上,请确保应用实际在运行后再尝试任何命令。

版本不匹配

如果 Compose 行为异常,请检查您确实在运行哪个版本:

docker compose version

如果版本过旧,请按照前文的升级步骤操作。如果同时安装了 v1 和 v2,这很可能就是混乱的根源。

v1 与 v2 冲突

同一台机器同时存在 docker-compose(v1)和 docker compose(v2)可能导致冲突。用以下命令检查 v1 是否仍存在:

which docker-compose

如果返回路径,请将其删除:

sudo rm $(which docker-compose)

今后请使用 docker compose(不带连字符)。

PATH 问题

如果已安装 Docker,但提示找不到命令,可能是 CLI 插件目录未在 PATH 中。先检查 Compose 二进制所在位置:

ls $DOCKER_CONFIG/cli-plugins/

如果文件存在但仍无法使用,请将该目录加入您的 PATH(在 ~/.bashrc 或 ~/.zshrc 中):

export PATH=$PATH:$HOME/.docker/cli-plugins

然后通过运行以下命令重新加载 Shell:

source ~/.bashrc

Docker Compose v1 与 v2

如果您使用 Docker 已有一段时间,可能在文章和视频中都见过 docker-compose 与 docker compose。它们并非同一事物。

Docker Compose v1 是独立的 Python 二进制,需与 Docker 分开安装。其命令为 docker-compose(带连字符)。Docker 已于 2023 年弃用该版本,不再维护或更新。

Docker Compose v2 是用 Go 编写、直接内置于 Docker CLI 的插件。通过 docker compose(不带连字符)调用。它随 Docker Engine 和 Docker Desktop 提供,因此在现代环境中无需额外安装。

两者的命令语法几乎一致——大多数 docker-compose 命令在 docker compose 中用法相同。主要区别在底层:v2 更快、与 Docker 工具链集成更紧密、且在持续维护。

下面是对比:

Compose v1 and v2 comparison table

Compose v1 与 v2 对比表

在 2026 年,请坚持使用 v2。如果您的脚本或 CI 流水线仍使用 docker-compose,将连字符替换为空格即可——对于大多数工作流,这就是唯一需要的更改。

总结

如果您使用的是现代 Docker 安装,Compose v2 已经就位,无需额外步骤。在 macOS 和 Windows 上,Docker Desktop 自带 Compose;在 Linux 上,则由 docker-compose-plugin 软件包提供。

在开始编写或运行 Compose 文件之前,请运行 docker compose version 确认一切已就绪。

如果您仍在使用 Compose v1,现在就是切换的好时机。去掉连字符并移除旧二进制——这就是全部。您现有的 Compose 文件可在 v2 中原样运行。

想了解更多 Docker 资源?报名我们的 Docker 入门课程,学习容器、镜像等内容。

Dario Radečić

作者

Dario Radečić

常驻克罗地亚的高级数据科学家。顶级科技写作者,已发表 700 多篇文章,累计获得超过 1,000 万次阅读。著有《使用 TPOT 实现机器学习自动化》。

FAQs

Docker Compose 有什么用?

Docker Compose 允许您通过单个 YAML 文件定义并运行多容器应用程序。您无需使用多个独立的 docker run 命令手动启动每个容器,而是在一个 docker-compose.yml 文件中描述完整环境,并通过 docker compose up 一次性启动全部。

在安装 Docker Compose 之前需要先安装 Docker 吗?

需要。Docker Compose 是运行在 Docker Engine 之上的插件——没有 Docker 它无法工作。请在进行任何 Compose 安装步骤前先运行 docker --version 确认已安装 Docker。

Docker Compose 是否免费?

Docker Compose 本身是开源且免费的。Docker Desktop(在 macOS 和 Windows 上捆绑提供 Compose)对个人和小型团队也免费。更大的组织可能需要根据其使用场景订阅付费的 Docker 方案。

docker compose 与 docker-compose 有何区别?

docker compose(不带连字符)是随现代 Docker 安装提供的 v2 CLI 插件。docker-compose(带连字符)是 2023 年被弃用的旧版 v1 独立二进制。两者语法几乎一致,但 v1 已不再维护——今后应使用 v2。

为何在安装后运行 `docker compose version` 仍提示“command not found”?

通常意味着 Compose 插件未正确安装,或 CLI 插件目录未加入 PATH。在 Linux 上,请用 sudo apt-get install docker-compose-plugin 确认插件已安装。如果已安装但仍找不到,请检查 $DOCKER_CONFIG/cli-plugins 是否已加入 PATH,并重新加载您的 Shell 配置。

主题