必须先停止再删除容器,且删除不可逆;docker stop 发送term信号优雅退出,超时后发kill;docker kill直接发送sigkill强制终止;docker rm仅删已停止容器,-f强制删除,-v清理匿名卷;批量操作需谨慎筛选。

停止和删除 Docker 容器是日常运维中最基础也最关键的两个操作,用错顺序或参数容易导致数据丢失或命令失效。核心原则就一条:**必须先停止再删除,且删除不可逆**。
停止单个正在运行的容器
使用 docker stop 命令,它会向容器发送 TERM 信号,给应用留出优雅退出的时间(比如关闭连接、保存状态)。
- 命令格式:
docker stop - 例如:
docker stop web-server或docker stop a1b2c3d4 - 如果容器没响应,Docker 默认等待 10 秒后自动发
KILL信号强制终止 - 想缩短等待时间,可加
-t参数,如:docker stop -t 5 myapp(5 秒后强制终止)
强制终止容器(慎用)
当容器卡死、无响应或需要立即中断时,用 docker kill。它直接发 SIGKILL(类似 kill -9),不给程序任何清理机会。
- 命令格式:
docker kill - 也可指定信号类型,比如发
SIGHUP重启配置:docker kill --signal=SIGHUP nginx - 注意:除非确认容器已失联,否则优先用
stop,避免数据异常
删除已停止的容器
docker rm 只能删已停止的容器。试图删运行中的容器会报错:“container is running”。
- 命令格式:
docker rm - 加
-f强制删除(等价于先 kill 再 rm):docker rm -f my-db - 加
-v同时删关联的匿名卷:docker rm -v my-cache(防止残留挂载点)
批量操作常用组合
一次性处理多个容器时,靠命令组合比逐个敲更高效,但务必确认目标范围。
- 停止所有运行中容器:
docker stop $(docker ps -q) - 删除所有已停止容器:
docker rm $(docker ps -a -q) - 一键清空(先停再删):
docker stop $(docker ps -q) && docker rm $(docker ps -a -q) - 按条件筛选删除(比如删所有名字含 “temp” 的已停止容器):
docker rm $(docker ps -a -f name=temp -q)











