You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何清理Docker未使用的overlay文件夹且不停止运行中的容器

关于overlay占用率相同的说明

你看到的13个overlay文件夹显示占用相同磁盘空间是OverlayFS联合文件系统的正常特性:所有容器共享底层只读镜像层,df统计时会将底层镜像层的占用计入每个容器的overlay挂载点,并非每个文件夹真的单独占用24G磁盘,无需担心重复占用问题。

安全清理步骤(全程不影响运行中的容器)

所有清理操作必须使用Docker官方CLI执行,禁止直接手动删除/var/lib/docker/overlay2下的任何文件/文件夹,否则会损坏运行中的容器或Docker运行环境。

  • 第一步:清理未使用的Docker构建缓存
    普通docker system prune --all不会清理构建缓存,这部分经常占用大量磁盘空间:
docker builder prune -a

执行时会列出待清理的缓存项,确认无误后输入y即可。

  • 第二步:清理未被任何容器挂载的存储卷
    如果有已删除容器遗留的存储卷未清理,可以执行:
docker volume prune

执行前会列出待删除的卷,确认没有需要保留的离线数据后再确认删除。

  • 第三步:清理运行中容器的冗余日志
    如果容器长时间运行未清理日志,日志文件也会占用大量磁盘空间,可先查看所有容器的日志大小:
du -h /var/lib/docker/containers/*/*-json.log

如果需要清空某个运行中容器的日志,执行以下命令即可,无需停止容器:

truncate -s 0 /var/lib/docker/containers/<替换为对应容器ID>/<替换为对应容器ID>-json.log

额外排查建议

如果清理后空间占用仍然较高,可以执行docker system df查看Docker各类资源的实际占用,输出结果比系统df更准确,能明确是镜像、容器、卷还是缓存占用了空间。
你当前看到的13个overlay挂载点都属于正在运行的容器的可写层,只要容器还在运行就属于正在使用的资源,无法清理,若要释放对应空间只能先确认冗余容器,停止删除后再执行docker system prune --all即可自动清理关联的overlay层。

内容的提问来源于stack exchange,提问作者nolwww

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 15:09:02