depends_on 是 Docker Compose 文件中的一个关键字,用于指定服务之间的依赖关系。具体来说,它定义了一个服务所依赖的其他服务,只有在所依赖的服务已经启动并且处于运行状态时,该服务才会被启动。
举个例子,假设我们在 Docker Compose 文件中有以下服务:
version: '3'
services:
db:
image: mysql
ports:
- "3306:3306"
app:
build: .
ports:
- "80:80"
depends_on:
- db
在这个例子中,我们有两个服务:一个是 db,它使用 MySQL 镜像并将容器内部的 3306 端口映射到主机的 3306 端口上;另一个是 app,它使用 Dockerfile 中的指令构建镜像,并将容器内部的 80 端口映射到主机的 80 端口上,并且指定了 depends_on 关键字,表示 app 服务依赖于 db 服务。
这样,在启动 Docker Compose 时,Compose 会先启动 db 服务,等待它启动并处于运行状态后,才会启动 app 服务。这是因为 app 服务需要使用 db 服务提供的数据库服务,如果 db 服务没有启动,那么 app 服务将不能正常工作。
需要注意的是,depends_on 指定的是服务之间的依赖关系,而并非启动的顺序。Compose 的启动顺序是根据服务的名称来决定的,而不是依赖关系。所以,在 Docker Compose 文件中,需要务必保证服务的名称是唯一的,并且不要依赖于启动的顺序。
depends_on关键字用于定义DockerCompose服务间的依赖,确保依赖的服务如db启动并运行后,app服务才会启动。这保证了如应用服务能访问到数据库服务。尽管Compose按服务名称顺序启动,但depends_on确保了依赖关系的正确性。
513

被折叠的 条评论
为什么被折叠?



