Docker Compose 健康检查与依赖启动顺序
· 阅读需 2 分钟
做本地开发编排时,一个很常见的错觉是: 只要容器进程起来了,服务就算可用了。实际情况往往不是这样,尤其是数据库、消息队列和依赖初始化步骤比较多的时候。
做本地开发编排时,一个很常见的错觉是: 只要容器进程起来了,服务就算可用了。实际情况往往不是这样,尤其是数据库、消息队列和依赖初始化步骤比较多的时候。
Docker Compose 真正进入团队日常以后,最容易变乱的不是容器本身,而是环境变量。数据库地址、Redis 密码、第三方 key、功能开关,只要项目一多,.env 很快就会变成谁都不敢动的文件。
Docker 本地环境用久了以后,几乎都会经历一个阶段:旧容器没删干净,历史镜像堆了不少,没在用的 volume 和网络也越来越多。这个时候很多人为了图快,直接一通删除,结果把本来还想保留的数据库数据也一起带走了。环境清理这件事看似只是几条命令,其实很考验顺序感。
有些容器问题并不是“起不来”,而是明明已经在运行,表现却和预期不一样。比如环境变量没生效、工作目录不对、配置文件路径错了、依赖包实际没有安装完整。这个时候如果只会不停重启容器,排查会非常低效。对这类问题来说,docker exec 往往比“再试一次”更有价值,因为它让你直接进入现场。
Docker 用到一定阶段后,几乎都会碰到一个问题:容器里的数据到底是保存在 volume,还是直接绑定宿主机目录。这个选择看起来像是命令层面的细节,实际上很影响本地开发效率。因为它决定了你改代码是否能实时生效、数据库数据是否好迁移、环境重建时会不会把重要内容一起清掉。