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

强制删除运行中的容器

# 不加 -f 会报错
$ docker rm running_container
Error: cannot remove running container

# 加 -f 强制删除
$ docker rm -f running_container
running_container

⚠️ 强制删除会向容器发送 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)

延伸阅读

最后更新于