github编辑

删除

随着容器的创建和停止,系统中会积累大量的容器。本节将介绍如何删除不再需要的容器,以及如何清理所有停止的容器。

基本用法

使用 docker rm 删除已停止的容器:

$ docker rm 容器名或ID

💡 docker rmdocker container rm 的简写,两者等效。


删除选项

选项
说明
示例

无参数

删除已停止的容器

docker rm mycontainer

-f

强制删除运行中的容器

docker rm -f mycontainer

-v

同时删除关联的匿名卷

docker rm -v mycontainer

删除已停止的容器

运行以下命令:

$ docker rm mycontainer
mycontainer

强制删除运行中的容器

运行以下命令:

⚠️ 强制删除会向容器发送 SIGKILL 信号,可能导致数据丢失。建议先 docker stop 优雅停止。

删除容器及其数据卷

运行以下命令:

注意:只删除匿名卷,命名卷不会被删除。


批量删除

删除所有已停止的容器

运行以下命令:

删除所有容器(包括运行中的)

运行以下命令:

按条件删除

运行以下命令:


常用过滤条件

docker ps 的过滤条件可以配合 rm 使用:

过滤条件
说明
示例

status=exited

已退出的容器

-f status=exited

status=created

已创建未启动

-f status=created

name=xxx

名称匹配

-f name=myapp

ancestor=xxx

基于某镜像创建

-f ancestor=nginx

before=xxx

在某容器之前创建

-f before=mycontainer

since=xxx

在某容器之后创建

-f since=mycontainer

示例

运行以下命令:


容器与镜像的依赖关系

有容器依赖的镜像无法删除。


清理策略建议

开发环境

运行以下命令:

生产环境

运行以下命令:

完整清理脚本

运行以下命令:


常见问题

Q: 容器无法删除

运行以下命令:

解决:先停止容器,或使用 -f 强制删除

Q: 删除后磁盘空间没释放

可能原因:

  1. 容器的数据卷未删除(使用 -v 参数)

  2. 镜像未删除

  3. 构建缓存未清理

解决:


本章小结

操作
命令

删除已停止容器

docker rm 容器名

强制删除运行中容器

docker rm -f 容器名

删除容器及匿名卷

docker rm -v 容器名

清理所有已停止容器

docker container prune

删除所有容器

docker rm -f $(docker ps -aq)

延伸阅读

最后更新于