目录
docker rm 命令教程:删除容器(-f、-v、container prune)
docker rm 删除已停止的容器;运行中的容器可以使用 -f 强制删除。容器创建、停止和删除的完整流程请参见容器生命周期。
语法
docker rm [选项] 容器 [容器...]
选项
| 选项 | 说明 |
|---|---|
-f, --force | 强制删除运行中的容器(使用 SIGKILL) |
-l, --link | 删除指定的链接 |
-v, --volumes | 同时删除与容器关联的匿名 Volume |
--filter 条件 | 筛选容器,例如 until=<timestamp> |
docker container prune 会删除所有已停止的容器;-f 可以跳过确认提示。
示例
删除已停止和运行中的容器
$ docker rm app
Error response from daemon: cannot remove container "app": container is running: stop the container before removing or force remove
$ docker rm -f app
app
$ docker rm job
job
- 运行中的
app无法直接删除;错误信息提示先停止容器或强制删除。 docker rm -f app成功删除运行中的容器,并输出容器名称app。- 已停止的
job可以直接删除,无需添加-f。
同时删除匿名 Volume
$ docker volume ls -q | wc -l
2
$ docker rm -f -v withvol
withvol
$ docker volume ls -q | wc -l
1
- 删除前列出了 2 个 Volume;使用
-v删除withvol后,还剩 1 个。 -v用于删除与容器关联的匿名 Volume。
清理所有已停止的容器
$ docker ps -a --format '{{.Names}} {{.Status}}'
old2 Exited (0) Less than a second ago
old1 Exited (0) 1 second ago
registry Up About a minute
$ docker container prune -f
Deleted Containers:
1634aa3747102ed4016d3695d9fbe33f9ff7310fde9c5726ef86a340f8d22acb
a3ec6e520acc56ef9f9d78452b104675b7afd070a8e9bd1ab0a010b34e2fe8a5
Total reclaimed space: 8.192kB
- 删除前有两个已停止的容器
old2、old1,以及一个运行中的registry。 docker container prune -f不会询问确认,并会输出被删除容器的 ID 和回收的空间。- 此命令会清理已停止的容器;运行中的
registry不会出现在删除清单中。
命令替换没有结果
$ docker rm $(docker ps -aq --filter status=exited)
docker: 'docker rm' requires at least 1 argument
Usage: docker rm [OPTIONS] CONTAINER [CONTAINER...]
See 'docker rm --help' for more information
docker ps -aq --filter status=exited没有输出时,命令替换不会提供任何容器参数。- 因此
docker rm会提示至少需要一个参数;批量清理可以改用docker container prune -f。
容器结束后自动删除
$ docker run --rm alpine:3.23 echo 'removed when done'
removed when done
$ docker ps -a --format '{{.Names}} {{.Status}}'
registry Up About a minute
--rm会让容器在命令结束后自动删除。- 后续的容器清单中只看到运行中的
registry,没有列出刚才运行完的容器。
相关章节
- 容器生命周期
- docker ps:列出和筛选容器
- docker stop:停止运行中的容器
- Docker Volume:管理 Volume
动手练习
练习:强制删除运行中的 app 容器,并同时删除与它关联的匿名 Volume。
答案
docker rm -f -v app
常见问题
为什么 docker rm 无法删除运行中的容器?
运行中的容器需要先停止,或使用 docker rm -f 强制删除;-f 会使用 SIGKILL。
删除容器时如何同时删除匿名 Volume?
添加 -v,例如 docker rm -f -v withvol。示例中 Volume 数量从 2 个减少到 1 个。
命令替换没有找到已停止的容器时会怎样?
docker rm $(docker ps -aq --filter status=exited) 因为没有传入容器名称或 ID,会提示至少需要一个参数。
如何在容器结束时自动删除它?
运行 docker run --rm;示例中的容器运行完后,docker ps -a 不再列出它。
更新于 2026年10月26日