docker stop
优雅停止运行中的容器
语法
docker stop [OPTIONS] CONTAINER [CONTAINER...]
参数
| 参数 | 说明 | 示例 | 级别 |
|---|---|---|---|
-t --time |
等待超时时间(秒),超时后强制杀死 | docker stop -t 30 web |
常用 |
示例
停止单个容器
docker stop web
发送 SIGTERM,等待 10 秒后 SIGKILL
停止多个容器
docker stop web db redis
可以同时停止多个
设置超时时间
docker stop -t 30 web
给应用更多时间做清理工作
停止所有运行中的容器
docker stop $(docker ps -q)
配合 docker ps -q 获取所有容器 ID
常见错误
Error: No such container
容器不存在或已停止,用 docker ps 确认
容器停止很慢
应用没有正确处理 SIGTERM 信号,考虑在 Dockerfile 中用 exec 形式的 CMD 或添加信号处理
技巧
- docker stop 先发 SIGTERM 再发 SIGKILL,确保应用有 graceful shutdown 逻辑
- 如果容器卡住不停止,用 docker kill 强制终止
- 停止后容器还在,用 docker rm 删除或 docker start 重新启动