stop 和 start 是 docker compose 中最轻量、最安全的启停操作,仅控制容器运行状态,不删除容器、不删除数据卷、不重建镜像;stop 发送 sigterm 优雅停止运行中服务并保留全部状态,start 则唤醒已停止容器复用原有配置快速恢复。

stop 和 start 是 Docker Compose 中最轻量、最安全的启停操作,适合日常开发调试和快速恢复服务,不删容器、不碰卷、不重建镜像。
stop:停止运行中的服务,保留全部状态
docker compose stop 会向每个服务容器的 PID 1 进程发送 SIGTERM 信号,等待其优雅退出(默认超时 10 秒)。容器本身不被删除,网络、数据卷、配置都原样保留。
- 停止全部服务:
docker compose stop - 只停某个服务(比如 web):
docker compose stop web - 停多个服务:
docker compose stop web api db
执行后用 docker compose ps 查看,状态会变成 Exit,但容器 ID 仍在,docker ps -a 也能看到它们。
start:重启已停止的容器,跳过重建环节
docker compose start 不会重新拉取镜像、不重建容器、不重配网络——它只是把之前 stop 过的容器“唤醒”,直接复用原有配置和挂载点。
- 启动所有已停止的服务:
docker compose start - 只启动指定服务:
docker compose start db
适用于临时停机维护后快速上线,比 up -d 更快,也避免因构建或镜像更新引入意外变更。
stop + start 的典型使用场景
这类组合特别适合以下情况:
- 本地开发中频繁切换功能分支,需暂停车库服务但保留数据库卷数据
- 测试环境做配置热更新前,先 stop 服务,改完
docker-compose.yml再 start(注意:start 不读新配置,如需生效得用 up) - 排查问题时临时停掉前端服务,保留后端和数据库继续运行以便复现接口调用链
和 down/up 的关键区别要清楚
别把 stop/start 和 down/up 混用:
-
down会删容器、网络、卷(加--volumes才删卷),up会重建容器甚至重拉镜像 -
stop/start只控制运行开关,一切状态全保留,本质是容器生命周期的“暂停/继续” - 如果修改了服务定义(比如端口、环境变量),
start不会生效,必须down后再up或用up --force-recreate











