Docker Compose 基础——AI教你学Docker
3.1 Docker Compose 基础
Docker Compose 是 Docker 官方推出的多容器应用定义与管理工具。它极大简化了多服务应用的部署、测试和运维,是现代容器开发与本地集成环境的核心工具之一。
一、Compose 的作用与优势
1. 作用
- 多容器应用编排:通过一个 YAML 文件(通常为
docker-compose.yml
)定义应用的各个服务(如 Web、数据库、缓存等)、网络、卷及依赖关系。 - 一键部署与管理:用一条命令即可启动、停止、重启、销毁整个多容器应用。
- 本地开发集成:为开发团队提供一致的本地环境,避免“在我电脑上没问题”的问题。
- 自动服务发现:同一 Compose 项目下的服务间可通过服务名直接通信(内置 DNS)。
- 环境隔离与配置复用:支持多套配置文件(如
.env
)及多环境部署(dev/test/prod)。
2. 优势
- 声明式配置:用 YAML 描述一切,配置清晰易读易维护。
- 团队协作友好:配置文件可纳入版本管理,团队共享一致开发环境。
- 简化命令操作:只需记住
docker compose up/down/logs
等少量命令,无需手动管理容器关联。 - 支持依赖与顺序:
depends_on
可声明服务依赖,确保启动顺序。 - 扩展性好:方便与 CI/CD、测试、远程部署等工具链集成。
二、安装与版本管理
1. Compose 的发展历程
- Compose v1:最初以 Python 脚本(
docker-compose
)分发,需单独安装。 - Compose v2:Go 语言重写,集成于 Docker CLI(
docker compose
),性能更优,功能更丰富,并成为官方主推版本。
2. 安装方式
a) Compose v2 (推荐)
-
Docker Desktop(Win/Mac):默认自带 Compose v2,无需单独安装。
-
Linux 安装(需 Docker 20.10.13+):
- 直接使用
docker compose
命令,无需docker-compose
二进制。 - 可通过包管理器升级 Docker,即可获得 Compose v2。
- 直接使用
-
检查版本
docker compose version
b) Compose v1(已不推荐)
-
以
docker-compose
命令行形式存在,需通过 pip 或二进制文件安装。 -
官方已于 2023 年停止维护 v1。
-
检查 v1 版本
docker-compose version
3. v1/v2 差异
特性 | Compose v1 (docker-compose) | Compose v2 (docker compose) |
---|---|---|
安装方式 | 独立安装 | 集成于 Docker CLI |
命令调用 | docker-compose up | docker compose up |
语言实现 | Python | Go |
性能与兼容性 | 较旧 | 更快,兼容性更好 |
支持平台 | 跨平台,维护停止 | 跨平台,长期维护 |
新特性 | 不再更新 | 持续更新,支持 Compose Spec |
4. 迁移建议
- 所有新项目:建议使用 v2(
docker compose
命令)。 - 老项目:如有
docker-compose
依赖,尽快升级至新版 CLI。 - 配置文件:Compose v1/v2 配置格式基本兼容,如需使用新特性(如 profiles、扩展字段)建议查阅最新官方文档。
三、参考命令速查
docker compose up -d # 后台启动所有服务
docker compose down # 停止并清理服务、网络、卷
docker compose ps # 查看服务状态
docker compose logs -f # 实时查看服务日志
docker compose build # 构建所有镜像
docker compose config # 检查和生成最终配置
四、官方资料
- Compose 官方文档
- Compose v2 迁移指南
- Compose 规范(Compose Spec)