docker rm 是什么
docker rm 删除容器,默认只能删已停止的容器;要删运行中的必须加 -f,它会先发 SIGKILL 再删除。容器删除后其可写层一并消失,因此删之前要确认数据是否已经落在数据卷或宿主目录里。加 -v 可以连同匿名卷一起删除,避免卷残留在磁盘上慢慢堆积。
基本信息
| 语法 | docker rm [-f] [-v] 容器 [容器…] |
|---|---|
| -f | 强制删除运行中的容器,等于先杀进程再删 |
| -v | 删除容器关联的匿名卷,具名卷不受影响 |
| 批量 | docker rm $(docker ps -aq) 或 docker container prune |
| 依赖顺序 | 删容器 → 删镜像的依赖链,反向操作会报冲突 |
典型使用场景
- 重建容器:改配置或换镜像时先删旧容器再按同样参数运行
- 清理退出容器:批量删除已退出实例,释放磁盘与容器名占用
- 释放容器名:容器名重复导致新容器创建失败,删掉旧的即可
- 环境重置:测试环境整体清空,配合 container prune 一次做完
- 排查磁盘:容器可写层写满磁盘,删除无用容器回收空间
常用示例
常用示例
docker rm myapp # 删除已停止的容器
docker rm -f myapp # 强制删除运行中的容器(先杀进程)
docker rm -v myapp # 同时删除匿名卷,避免卷残留
docker rm $(docker ps -aq --filter "status=exited") # 批量清理已退出容器
docker container prune # 等价于批量删除停止的容器删除行为对照
| 命令 | 运行中容器 | 匿名卷 | 具名卷 |
|---|---|---|---|
| docker rm | 报错拒绝 | 保留 | 保留 |
| docker rm -f | 强制删除 | 保留 | 保留 |
| docker rm -v | 报错拒绝 | 一并删除 | 保留 |
| docker rm -fv | 强制删除 | 一并删除 | 保留 |
| docker container prune | 跳过运行中 | 保留 | 保留 |
只删容器不删匿名卷,会让 /var/lib/docker/volumes 缓慢膨胀,是磁盘被悄悄占满的常见来源。定期用 docker system df -v 查看卷占用。
-v 只清理匿名卷,具名卷必须显式 docker volume rm。承载数据库数据的卷误删不可恢复,删除前先确认卷名与用途。
删除容器是老旧的清理手段:容器可写层与容器名会一起释放,但镜像、网络与具名卷都不受影响,磁盘占用不会因此明显下降。