首页/云/云与容器速查/Init 容器(初始化容器)
本包目录(340 条)
云基础概念44 条计算与存储56 条网络与安全组33 条容器与 Docker106 条
Kubernetes68 条
容器排障33 条

Init 容器(初始化容器)

在主容器启动前按序执行并必须成功完成的容器:用于等待依赖就绪、数据库迁移、生成配置;任何一步失败,Pod 会按 restartPolicy 重试而不是启动主容器。

云与容器速查云更新于 2026-10-12
顺序依次串行执行,全部成功才启动主容器
失败语义失败即重试整个 init 序列(按 Pod restartPolicy)
能力限制不支持 lifecycle/readinessProbe;可用资源限制
共享与主容器共享卷与网络命名空间
排错kubectl logs pod -c <init 容器名>

等待依赖示例

等待依赖示例
spec:
  initContainers:
    - name: wait-db
      image: busybox:1.36
      command: ["sh", "-c", "until nc -z db 3306; do echo waiting db; sleep 2; done"]
  containers:
    - name: app
      image: registry.example.com/team/app:1.2.3
『依赖就绪』放 init 只解决启动时序:运行中依赖闪断仍需应用侧重连,两者职责不同。

易错点

  • init 里跑长驻进程:永远不退出,主容器永不启动
  • 用 sleep 30 硬等:环境一慢就不够,还是用探测循环更稳

数据来源与参考

  • Kubernetes Docs:Init Containers

相关工具

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