第三十七节 Docker Compose安装+使用入门

亮子 | 2026-04-13 15:05:15 | 78 | 0 | 0 | 0

Docker Compose 是一个用于定义和运行**多容器** Docker 应用程序的工具。你可以使用一个 YAML 文件(compose.yaml)来配置应用程序所需的所有服务(如后端、数据库、缓存等),然后只需一条命令,就能根据配置创建并启动所有服务。

简单来说,它解决了通过多个 docker run 命令手动启动不同容器所带来的繁琐和易错问题。

✨ 主要优点

使用 Docker Compose 能带来几个很明显的好处:

  • 简化控制:将复杂的多容器配置统一写在一个 YAML 文件中,让应用的编排和管理变得更简单。
  • 环境一致性:开发、测试、生产环境可以使用相同的配置文件,有效避免“环境不一致导致的问题”。
  • 提升效率:可以缓存配置以快速重建环境,并能通过 depends_on 自动管理服务启动顺序。

📝 如何安装

Docker Compose 的安装方式取决于你的操作系统。

操作系统 安装方式与说明
Windows / macOS 推荐安装 Docker Desktop。Docker Compose 已包含在其中,安装 Docker Desktop 即可直接使用。
Linux 需要手动安装。请根据以下步骤操作。

🐧 Linux 手动安装步骤

  1. 下载二进制文件:从 GitHub 下载最新版本的 Docker Compose。建议先访问 GitHub releases 页面 查看最新版本号(例如 v2.40.3),然后替换下方命令中的版本号。

    sudo curl -L "https://github.com/docker/compose/releases/download/v2.40.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/lib/docker/cli-plugins/docker-compose
    

  2. 赋予执行权限:让刚下载的文件有被执行的权限。

    sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
    
  3. 验证安装:运行以下命令,如果正确输出版本信息,则说明安装成功。

    docker compose version
    

    注意:新版本命令是 docker compose(中间没有横线)。

🚀 如何使用

使用 Docker Compose 通常遵循“三步走”的流程。

1. 定义应用环境

为你的每个服务(如 Web 应用)编写 Dockerfile,定义如何构建它自己的镜像。

2. 创建 compose.yaml 配置文件

这是最关键的一步。在项目根目录下创建一个 compose.yaml 文件,定义所有服务。以下是一个包含 Web 应用和 Redis 缓存的示例:

services:
  web:
    build: .                 # 使用当前目录下的Dockerfile构建镜像
    ports:
      - "8000:5000"          # 将宿主机的8000端口映射到容器的5000端口
    volumes:
      - .:/code              # 将当前目录挂载到容器的/code目录,方便开发时代码同步
  redis:
    image: "redis:alpine"    # 直接使用Docker Hub上的Redis镜像

3. 使用 Compose 命令启动应用

compose.yaml 文件所在的目录下,执行以下命令来启动整个应用:

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

📋 常用管理命令

应用启动后,你可以通过以下命令来管理它:

命令 作用
docker compose up -d 在后台创建并启动所有服务
docker compose down 停止并删除所有容器、网络
docker compose stop 停止所有运行中的服务,但保留容器
docker compose start 启动已停止的服务
docker compose restart 重启所有服务
docker compose ps 列出当前项目中所有容器的状态
docker compose logs -f 实时查看所有服务的日志输出
docker compose exec <服务名> bash 进入指定服务的容器内部执行命令(如 docker compose exec web bash
docker compose down -v ⚠️ 危险操作:停止并删除所有容器、网络和**数据卷**,这会清除数据库等持久化数据

Docker Compose 的核心价值在于将多容器应用定义为“基础设施即代码”,通过 compose.yaml 文件,应用的完整架构可以被清晰地定义、版本化管理,并实现一键部署。

希望这份指南能帮你顺利上手。如果使用中遇到具体问题,可以随时再来问我。