Docker Compose 中 stop、start 与系统重启行为的正确理解
在使用 Docker Compose 管理服务器服务时,一个非常常见但经常被误解的问题是: 执行 docker compose stop 之后,如果系统重启,这些容器会不会自动启动? 这个问题如果理解错误,可能导致服务器重启后关键服务无法恢复,或者相反,一些本应“冷静”的服务又被意外启动。 本文对 Docker Compose 的停止机制与自动重启行为进行系统性说明。 1. docker compose stop 的真实含义 执行: 其行为是: 这是一个逻辑层面的“人为停止”,不是故障,不是崩溃,而是一个明确的运维决策。 2. 系统重启后是否会自动启动? 答案是:不会。 如果某个容器曾被 docker compose stop 停止,那么: 都不会自动将其启动。 该容器会保持 exited 状态,直到手动执行: 3. restart: unless-stopped 为什么不起作用? 很多人会在 docker-compose.yml 中写: 并以为这样就一定会自动启动。 但实际上: unless-stopped 的语义是“只要不是被人为停止,就在 Docker 启动时自动恢复” 而 docker compose …