在Docker中,如何清理后台停止的容器?
在Docker中清理后台停止的容器(状态为exited
的容器),常用方法如下:
1. 推荐:使用 docker container prune
命令(安全便捷)
这是Docker官方推荐的清理命令,会自动删除所有已停止的容器,并且执行前会有确认提示,避免误操作。
命令:
docker container prune
执行后会显示:
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
Deleted Containers:
abc123def456...
...
Total reclaimed space: X.XXGB
如果想跳过确认直接删除,可加 -f
(force)参数:
docker container prune -f
2. 手动筛选并删除(灵活控制)
如果需要更精细的筛选(比如只删除特定条件的停止容器),可以结合 docker ps
筛选容器ID,再用 docker rm
删除。
(1)删除所有停止的容器
先通过 docker ps -aqf "status=exited"
筛选出所有停止容器的ID,再用 docker rm
删除:
# 先查看要删除的容器(可选,确认无误后再执行删除)
docker ps -aqf "status=exited"
# 执行删除
docker rm $(docker ps -aqf "status=exited")
(2)删除指定时间前停止的容器
例如,删除24小时前停止的容器:
# 筛选24小时前停止的容器ID并删除
docker rm $(docker ps -aqf "status=exited" --filter "until=24h")
注意事项:
- 运行中的容器无法被删除,上述命令只会影响已停止的容器。
- 删除容器前,建议先通过
docker ps -a
查看所有容器状态,确认要删除的目标。 - 容器内的数据(如果未挂载到卷)会随容器一起删除,确保数据已备份或通过卷持久化。
总结:日常清理推荐用 docker container prune
,简单安全;需要精细化筛选时,可结合 docker ps --filter
和 docker rm
组合命令。