哪里可以找到 docker-compose 的入门指南?

文章导读
想学 docker-compose,最稳妥的入门路径是直接从 Docker 官方文档和经过验证的中文教程入手,配合实际项目练习。
📋 目录
  1. 命令速用版
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 参考来源
A A

想学 docker-compose,最稳妥的入门路径是直接从 Docker 官方文档和经过验证的中文教程入手,配合实际项目练习。

先说结论:docker-compose 入门资料丰富,但建议优先看官方文档和结构清晰的实战教程,避免被过时版本误导。

  • 适合:需要快速部署多容器应用的开发者和运维人员
  • 先看:官方文档的 Getting Started 章节和基础 YAML 配置示例
  • 建议:从简单的双服务示例开始,逐步增加复杂度

命令速用版

如果你已经安装了 Docker Compose,可以直接用以下命令快速验证环境:

docker-compose `--version`

查看帮助信息,了解可用命令:

docker-compose `--help`

在包含 docker-compose.yml 的目录下启动服务:

docker-compose up

停止并清理服务:

docker-compose down

查看运行中的容器状态:

docker-compose ps

查看服务日志:

docker-compose logs <service>

为什么会这样

docker-compose 是 Docker 官方推出的容器编排工具,核心作用是用一个 YAML 配置文件定义多容器应用,然后一条命令完成所有容器的创建、启动、停止和删除。

不用 Compose 的话,你需要手动执行多个 docker run 命令,逐个配置网络、卷、环境变量等参数。容器数量增加后,管理成本会快速上升,而且容易出错。Compose 把应用基础设施(服务、网络、存储)用配置文件管理起来,可以纳入版本控制系统,方便协作和追溯。

市面上使用较多的容器编排工具还有 Kubernetes,但 Compose 更适合单机多容器场景,学习曲线更平缓。

分步处理

第一步:确认安装状态

在终端运行 docker-compose `--version`,如果显示版本号说明已安装。如果没有安装,需要从 Docker 官网下载适用于你操作系统的版本,解压后添加到系统环境变量中。

第二步:理解配置文件结构

一个标准的 docker-compose.yml 文件包含以下核心部分:

  • version:指定 Compose 文件语法版本,需与 Docker 引擎版本兼容
  • services:定义服务容器,每个服务对应一个容器实例
  • networks:定义容器间通信的网络
  • volumes:管理数据持久化,容器删除后数据不丢失

第三步:从简单示例开始

创建一个包含两个服务的示例文件,比如 Web 服务加数据库:

哪里可以找到 docker-compose 的入门指南?
version: '3'
services:
  web:
    image: nginx:alpine
    ports:
      - "80:80"
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: password

第四步:启动并测试

在文件所在目录运行 docker-compose up,观察输出日志确认服务启动成功。然后用 docker-compose ps 查看容器状态。

第五步:逐步增加复杂度

熟悉基础用法后,可以尝试添加数据卷挂载、自定义网络、环境变量配置等功能。多环境配置时,可以使用多个 Compose 文件叠加,比如开发环境加载 override 配置。

怎么验证是否生效

启动服务后,用以下方法确认配置是否正确:

  • 运行 docker-compose ps,所有服务状态应显示为 Up
  • 运行 docker-compose logs <service>,查看是否有错误日志
  • 访问映射的端口(如 80 端口),确认 Web 服务可访问
  • 检查数据卷是否正确挂载,容器重启后数据是否保留
  • 验证服务间通信,比如 Web 容器能否通过服务名访问数据库容器

如果服务启动失败,先查看日志定位错误,再检查 YAML 语法和配置参数。

常见坑

版本兼容问题

Compose 文件版本需要与 Docker 引擎版本兼容,过高或过低都可能导致解析失败。公开资料中没有看到可靠的版本对应量化数据,建议参考官方文档的版本说明。

服务名依赖

容器间通过服务名互相访问,不是容器名。配置环境变量时要注意服务名拼写一致。

数据卷清理

docker-compose down 默认不删除卷,如果需要彻底清理,要加 -v 参数。删除前确认数据是否需要保留。

端口冲突

主机端口被占用时,服务启动会失败。可以先用 netstat 或 ss 命令检查端口占用情况。

网络隔离

Compose 为项目创建默认网络,不同项目的容器默认无法通信。需要跨项目通信时要自定义网络。

参考来源

  • Docker 指南⑦:docker-compose 快速入门
  • Docker Compose 完全指南:从入门到实践
  • Docker Compose 零基础入门
  • Docker Compose 配置文件详解:docker-compose.yml 实战指南
  • Docker 多容器编排:Compose 实战教程
  • 小白快速上手 Docker 07 | 有关 Docker Compose 的一切
  • 一键搞定容器编排!Docker Compose 企业级部署避坑手册