Files
docker_practice/11_compose/README.md

33 lines
1.8 KiB
Go
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 第十一章 Docker Compose
`Docker Compose` Docker 官方编排 (Orchestration) 项目之一负责快速的部署分布式应用
> **重要提示Compose V1 已停止支持**
>
> 早期基于 Python 编写的 Compose V1命令为 `docker-compose`已于 2023 年中正式停止支持现已全面升级为基于 Go 编写的 Compose V2作为 Docker CLI 的官方插件提供命令为 `docker compose`中间为空格本书强烈推荐且后续章节均以 V2 为核心标准进行讲解
## Docker Compose 解决什么问题
在学习 Compose 之前笔者想强调它的真正价值假设你正在开发一个微服务应用前端后端数据库三个服务如果你用 Docker 容器分别运行它们你会遇到这些问题
1. **启动顺序**需要先启数据库再启后端最后启前端
2. **网络连接**三个容器需要能彼此通信
3. **卷挂载**本地代码需要映射到容器内
4. **环境变量**每个服务的配置需要逐个设置
使用 `docker run` 逐个启动的话需要记住 3 条复杂的命令 **Docker Compose 的核心价值就是用一个 YAML 文件来定义整个应用**然后一条命令 `docker compose up` 启动所有服务这是 Compose 被广泛采用的原因它极大地简化了本地开发和测试的复杂性
**谁应该学 Compose** 任何使用 Docker 进行本地开发的人以及需要快速部署多容器应用的团队
本章将介绍 `Compose` 项目情况以及安装和使用
* [简介](11.1_introduction.md)
* [安装与卸载](11.2_install.md)
* [使用](11.3_usage.md)
* [命令说明](11.4_commands.md)
* [Compose 模板文件](11.5_compose_file.md)
* [实战 Django](11.6_django.md)
* [实战 Rails](11.7_rails.md)
* [实战 WordPress](11.8_wordpress.md)
* [实战 LNMP](11.9_lnmp.md)