Docker Compose是什么?怎么安装?

文章导读
Docker Compose 是用于定义和运行多容器 Docker 应用的工具,通过 YAML 文件配置服务,适合本地开发和测试环境编排。
📋 目录
  1. 命令速用版
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 参考来源
A A

Docker Compose 是用于定义和运行多容器 Docker 应用的工具,通过 YAML 文件配置服务,适合本地开发和测试环境编排。

先说结论:它是 Docker 官方编排工具,能一键启动多个关联容器,生产环境建议结合 Kubernetes 或使用 Docker Swarm。

  • 适合:本地开发、测试环境、单机多容器应用。
  • 先看:确认已安装 Docker Engine,区分 V1 standalone 与 V2 plugin 版本。
  • 建议:新用户优先安装 Docker Compose V2 插件,命令更统一。

命令速用版

Linux 系统安装 standalone 版本的常用命令如下,注意替换版本号为你需要的版本:

sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

若使用 Docker Compose V2 插件(推荐),通常随 Docker Desktop 安装,或通过 Docker CLI 插件机制安装,命令变为 docker compose 而非 docker-compose

为什么会这样

单个容器容易管理,但实际应用往往需要 Web 服务、数据库、缓存等多个容器配合。手动逐个执行 docker run 不仅命令冗长,还难以处理容器间的依赖和网络连接。Compose 通过一个 docker-compose.yml 文件定义所有服务依赖,将复杂的多容器启动过程简化为一条命令,确保环境一致性。

分步处理

1. 前置检查
确保系统已安装 Docker。在终端输入 docker `--version`,若有输出则继续。

2. 安装 Compose
Linux 用户可下载二进制文件到系统路径。下载前建议访问 GitHub 发布页确认最新版本号。下载完成后赋予执行权限:

sudo chmod +x /usr/local/bin/docker-compose

Mac/Windows 用户安装 Docker Desktop 后通常自带 Compose,无需单独安装。

3. 编写配置文件
在项目根目录创建 docker-compose.yml。基础结构包含版本和服务定义:

Docker Compose是什么?怎么安装?
version: "3"
services:
  web:
    image: nginx
    ports:
      - "80:80"

4. 启动服务
在配置文件所在目录执行启动命令。后台运行建议加 -d 参数:

docker-compose up -d

怎么验证是否生效

1. 检查版本
输入 docker-compose `--version`docker compose version,看到版本号即表示安装成功。

2. 查看运行状态
使用 docker-compose ps 查看当前项目下的容器状态,状态栏显示 Up 表示运行正常。

3. 访问服务
根据 YAML 中配置的端口映射,在浏览器访问对应端口,如 http://localhost:80 能看到欢迎页即表示服务可用。

常见坑

1. 命令混淆
Docker Compose V1 使用连字符 docker-compose,V2 插件使用空格 docker compose。脚本中需确认环境支持的命令格式,避免报错。

2. 权限问题
二进制文件下载后若未赋予执行权限(chmod +x),运行时会提示 Permission denied。

3. 版本兼容性
YAML 文件中的 version 字段需与安装的 Compose 版本兼容。过高版本的语法在旧版 Compose 中可能无法解析,建议参考官方文档匹配语法版本。

参考来源

  • Docker 官方文档:Install Docker Compose,URL: https://docs.docker.com/compose/install/
  • Docker Compose 开源项目:GitHub Releases,URL: https://github.com/docker/compose