# Docker教程 - 5 Docker Compose

先说一下我们现在遇到的问题:

在实际的使用环境中,可能应用会很复杂,尤其是微服务架构中,一个应用系统可能包含多个微服务,每个微服务可能需要部署多个实例。手动启停每个微服务既低效又需要大量维护工作。多个容器之间还可能存在依赖关系,需要按照指定的顺序启动,所以手动维护这些容器会变得复杂和繁琐,没有效率还可能出错。

所以现在就需要一个工具,来进行多容器的管理和编排,Docker Compose 来了。

# 5.1 Docker Compose简介

Docker Compose 是 Docker 公司推出的一个工具,用于简化多容器应用程序的定义、运行和管理。通过一个 YAML 配置文件(通常是 docker-compose.yml),用户可以定义应用程序的各种服务、网络和卷,并通过一条命令就可以启动、停止一组相关联的多个容器。

# 5.2 Docker Compose安装

在 Docker 旧版本中,Docker Compose 要另外安装,现在的 Docker 中已经默认集成了 Docker Compose。

使用 docker compse version 命令可以查看到版本信息:

# 5.3 Docker Compose使用

下面演示一下 Docker Compose 的使用。

Docker Compose 主要是对多个容器的同时启动和停止,所以我们就用一个例子同时启停两个应用,至于同时启动3个、4个,100个也是一样的。

好了,假设有一个 SpringBoot 应用,需要部署在 Docker 容器中,同时它还需要依赖一个 Redis 容器。

他们之间是存在依赖关系的,因为 SpringBoot 项目要访问 Redis 服务,需要先启动 Redis 容器,然后才能启动 SpringBoot 的应用程序容器,否则 SpringBoot 项目启动会报错。

下面使用 Docker Compose 完成上面的功能,一键启动两个容器。

其实这里通过这个样例来演示 Docker Compose 是有点不合适的,因为一般在实际使用的过程中,我们的 Redis 服务或者是 MySQL 服务启动后就不会动了,是不跟随业务服务器来进行启动和停止的。一般会有订单服务、支付服务、业务服务这样的多个微服务,可以通过 Docker Compose 来控制这些相关联的微服务同时启停。这样但是这里为了演示方便,使用了这个例子。主要是演示 Docker Compose 是如何控制多个容器进行启动和停止的,并控制容器之间的依赖关系。

内容未完......