Docker Compose允许您通过运行单个命令来启动多个容器。这简化了由几个独立组件组成的复杂服务的启动。
但这并不总是足够好。您的某些容器可能存在相互依赖关系,如果它们无法实现,则会破坏应用程序。在本指南中,我们将展示如何配置 Compose 服务以适应这些依赖项,从而可以按顺序启动容器。
Docker Compose 支持文件中的depends_on字段docker.compose.yml。服务可以在depends_on. 这可以防止容器在依赖的服务启动之前启动。
services:
api:
image: example.com/api:latest
depends_on:
- db
web-app:
image: example.com/web-app:latest
depends_on:
- api
db:
image: mysql:8.0
在此示例中,这些depends_on字段导致服务按以下顺序启动:
每个服务的依赖关系都是递归解决的。定义每个depends_on字段的服务最后启动,在链的最末端。当一个服务依赖于多个其他容器时,它们将按照它们在depends_on字段中列出的顺序启动。
当您使用 停止堆栈时,服务链将反向使用docker-compose stop。在上面的例子中,web-app容器会先被删除,api然后db. 这可以防止对web-app容器的请求在拆卸操作开始时