docker rm 命令仅能删除已停止的容器;若容器正在运行,需先执行 docker stop 或使用 -f 参数强制终止并删除,否则报错“container is running”。

用 rm 命令删除容器,本质是终止其生命周期并移除运行时状态。但要注意:docker rm 只能删已停止的容器;正在运行的容器必须先停再删,或加 -f 强制终止后删除。
确认容器状态再操作
直接执行 rm 可能报错“container is running”,所以先查状态:
-
docker ps查看运行中的容器(显示 CONTAINER ID 和 STATUS) -
docker ps -a查看所有容器(含已退出的) - 找到目标容器的 ID 或名字,确认它是否处于
Exited状态
删除已停止的容器
如果容器已退出,直接用名字或 ID 删除即可:
-
docker rm my-nginx(按容器名删) -
docker rm a1b2c3d4(按前几位 ID 删,无需全写) - 成功后只返回容器 ID,无提示即表示删除成功
强制删除运行中的容器
不想先 stop 再 rm,可用 -f 参数一步到位:
-
docker rm -f my-redis相当于先docker stop my-redis,再rm - 注意:
-f会发送 SIGKILL 强制终止,应用来不及优雅关闭,可能丢数据或日志 - 生产环境建议优先用
docker stop+docker rm组合,更安全
批量清理与自动清理习惯
避免残留大量已退出容器,可配合常用技巧:
- 删所有已退出容器:
docker rm $(docker ps -q -f status=exited) - 删所有未被使用的容器(谨慎!):
docker container prune - 启动容器时加
--rm参数,容器退出后自动删除:docker run --rm nginx:alpine











