首页/云/Docker 容器速查/docker container prune 清理停止容器
基础命令50 条

docker container prune 清理停止容器

批量删除所有已停止容器,是定期清理的常规手段;--filter until= 只清超龄的,-f 跳过交互确认。

Docker 容器速查云更新于 2026-10-13

container prune 是什么

docker container prune 批量删除已停止的容器,是清理环境的常规手段。默认会交互确认,加 -f 免确认;配合 --filter until 只清理超过指定时长的容器,可以避免误删刚退出、还没分析过的实例。

基本信息

用途批量清理已停止容器
语法docker container prune [--filter until=24h] [-f]
不会动的运行中的容器与具名卷
相关命令docker system prune 范围更大,会连未使用网络与镜像一起处理
非交互脚本里必须显式加 -f,否则等待确认

典型使用场景

  • 构建机、测试机定时清理,一天下来会积累大量退出状态的容器
  • 磁盘告警时作为首选清理手段,比删镜像、删卷更安全
  • 配合 until 只清超龄容器,保留近期退出、可能还要看日志的实例
  • 排查结束后批量收尾,让环境恢复到可判断的状态
  • 结合 label 过滤按团队或环境清理,只清测试环境的残留
  • CI 流水线收尾阶段清掉本次运行产生的容器

示例

示例
docker container ls -a --filter status=exited | wc -l    # 先看有多少待清理
docker container prune --filter until=24h                  # 只清理退出超过 24 小时的
docker container prune -f --filter 'label=env=ci'          # 按标签清理并免确认
docker container prune -f                                  # 清理全部已停止容器

清理命令的范围差别

命令清理对象风险
container prune已停止容器现场与日志一起消失,难以恢复
container prune --filter until超龄的已停止容器相对温和,适合长期例行使用
volume prune未被使用的卷数据直接删除,执行前确认没有待保留数据
system prune -a容器、网络、未使用镜像等影响面最大,生产机上慎用
还没取完日志或现场(docker logs、docker cp、commit)的容器不要急着清理,退出状态的容器是排查问题的第一现场。
退出容器本身占用有限,真正吃盘的是可写层数据、镜像层和卷;动手前用 docker system df 看清空间去向,比盲目清理有效。
prune 只处理执行命令的这台机器:多节点环境要在每个节点分别执行,或用统一脚本分发,否则节点间的清理情况会不一致。

易错点

  • 脚本里默认带 -f 全量清理,会把刚退出、还没分析完的容器一起删掉,日志与挂载点一并丢失
  • 以为清容器能腾出大量空间:占用主要来自镜像与卷,顺序应当先看 docker system df 再决定清什么
  • 卷不会被 container prune 删除,容器删了而卷还在,误以为数据已经清干净
  • 容器与它挂载的网络、卷存在依赖时清理会报错,按报错顺序先解依赖再重试
  • 磁盘告警时先执行无差别清理再看告警原因,把本该用于定位问题的容器现场一起删掉,事后无从复盘

数据来源与参考

  • Docker 官方 CLI 参考:docker container prune(docs.docker.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌