docker-compose 如何安装、使用及快速入门?

文章导读
对于单机多容器应用编排,推荐通过官方渠道安装 Docker Compose,使用 docker-compose.yml 配置文件管理服务,适合开发、测试及中小型生产环境。
📋 目录
  1. 命令速用版
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 参考来源
A A

对于单机多容器应用编排,推荐通过官方渠道安装 Docker Compose,使用 docker-compose.yml 配置文件管理服务,适合开发、测试及中小型生产环境。

先说结论:Docker Compose 是 Docker 官方提供的多容器编排工具,通过 YAML 文件定义服务,一条命令即可启动完整应用栈。

  • 适合:单机多容器应用、开发测试环境、微服务本地调试
  • 先看:安装方式选择(插件版或独立二进制)、compose 文件版本兼容性
  • 建议:优先使用 docker compose 插件命令,生产环境注意版本锁定和配置备份

命令速用版

安装后常用命令如下,可直接在终端执行:

# 查看版本确认安装成功
docker-compose `--version`

# 启动所有服务(前台)
docker-compose up

# 启动所有服务(后台)
docker-compose up -d

# 停止并删除容器、网络、卷
docker-compose down

# 查看运行中的容器
docker-compose ps

# 查看服务日志
docker-compose logs <service>

# 进入容器执行命令
docker-compose exec <service> <command>

# 重新构建镜像
docker-compose build

# 重启服务
docker-compose restart

为什么会这样

Docker Compose 解决的核心问题是:当应用由多个容器组成时,手动执行多条 docker run 命令容易出错且难以维护。通过 docker-compose.yml 文件,你可以将服务定义、网络配置、卷挂载等信息集中管理,使用单个命令完成整个应用栈的启动。

Compose 管理三个层级内容:工程(运行目录)、服务(子项目)、容器(服务实例)。但需要注意,它只能在单一主机上进行编排,跨节点编排需要使用 Docker Swarm 或 Kubernetes。

分步处理

1. 安装 Docker Compose

有两种主流安装方式,任选其一即可:

方式一:作为 Docker 插件安装(推荐)

docker-compose 如何安装、使用及快速入门?
# CentOS/RedHat 系统
yum install -y docker-compose-plugin

# 验证安装
docker compose version

安装后使用 docker compose 命令(无连字符)。

方式二:独立二进制安装

# 下载安装包(版本号需替换为实际版本)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose

# 添加执行权限
sudo chmod +x /usr/local/bin/docker-compose

# 验证安装
docker-compose `--version`

安装后使用 docker-compose 命令(有连字符)。

2. 编写 docker-compose.yml

在项目根目录创建配置文件,基本结构如下:

version: "3.9"
services:
  web:
    build: .
    ports:
      - "8080:8080"
    volumes:
      - .:/code
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: password

常用字段说明:build 指定 Dockerfile 路径,image 指定镜像,ports 暴露端口,volumes 挂载卷,environment 设置环境变量,depends_on 定义服务依赖。

3. 启动应用

# 进入配置文件所在目录
cd /path/to/your/project

# 启动所有服务
docker-compose up -d

# 查看服务状态
docker-compose ps

怎么验证是否生效

完成安装和配置后,按以下步骤验证:

  1. 验证安装:执行 docker-compose `--version`docker compose version,有版本号输出即表示安装成功
  2. 验证服务启动:执行 docker-compose ps,所有服务状态应显示为 Up
  3. 验证端口映射:执行 docker-compose port <service> <port> 查看端口映射,或使用 curl 测试服务可访问性
  4. 验证日志:执行 docker-compose logs <service> 查看服务启动日志,确认无报错
  5. 验证网络:执行 docker network ls 查看是否创建了自定义网络,服务间可通过服务名互相访问

常见坑

  • 命令混用:插件版使用 docker compose,独立版使用 docker-compose,两者不要混用
  • 版本兼容性:docker-compose.yml 的 version 字段需与 Compose 版本匹配,公开资料中没有看到可靠的版本兼容性量化对照表,建议参考官方文档
  • 容器名称冲突:如果指定 container_name,该服务无法使用 scale 命令扩容,因为容器名称必须唯一
  • 端口限制:ports 映射的端口不能低于 60
  • 网络隔离:Compose 会创建默认自定义网络(bridge 类型),而非使用默认 docker0 桥接网络,服务间可通过服务名直接访问
  • 跨主机限制:Compose 只能用于单一主机编排,无法跨节点,多主机场景需考虑 Swarm 或 K8s
  • 配置变更:修改 yml 后需执行 docker-compose up `--force-recreate` 重新加载配置

参考来源

  • Docker 官方文档 - Docker Compose 安装指南:https://docs.docker.com/compose/install/
  • Docker 官方文档 - Compose 文件格式:https://docs.docker.com/compose/compose-file/compose-file-v3/
  • 阿里云开发者社区 - Docker Compose 安装及入门使用
  • 阿里云开发者社区 - docker-compose 快速入门及实战
  • 博客园 - 单机编排工具之 docker-compose 快速入门使用