# 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 是如何控制多个容器进行启动和停止的,并控制容器之间的依赖关系。
← 04-Docker网络 06-限制容器资源 →