首页/云/云与容器速查/depends_on 启动顺序与健康条件
本包目录(340 条)
云基础概念44 条计算与存储56 条网络与安全组33 条
容器与 Docker106 条
Kubernetes68 条容器排障33 条

depends_on 启动顺序与健康条件

短语法只保证启动先后,不保证依赖『就绪』:web 可能在 MySQL 初始化完成前就连库。长语法配合 condition: service_healthy 才是可靠的启动门闩。

云与容器速查云更新于 2026-10-12
短语法depends_on: [db]:仅控制创建/启动顺序
长语法condition: service_started / service_healthy / service_completed_successfully
service_healthy依赖服务健康检查通过后才启动本服务(需配 healthcheck)
注意depends_on 不会在依赖失败时自动重试本服务;应用仍应有重连逻辑

可靠等待示例

可靠等待示例
services:
  web:
    depends_on:
      db:
        condition: service_healthy
  db:
    image: mysql:8.0
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1"]
      interval: 5s
      timeout: 3s
      retries: 20
编排不是银弹:应用侧还是要实现连接重试与超时退避,避免依赖短暂抖动导致整栈启动失败。

易错点

  • 短语法以为会等就绪:数据库没初始化完,web 已开始连库报错
  • healthcheck 命令写错(容器里没有该命令):永远 unhealthy,服务卡在启动前

数据来源与参考

  • Docker Docs:Compose depends_on

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌