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

如何安全清理占用异常空间的/var/lib/docker目录?

Docker overlay2目录安全清理方案

你的情况是典型的Docker overlay2目录积累了未清理的容器读写层、日志、废弃镜像层等冗余数据,以下是安全的清理步骤:

1. 基础清理:用Docker官方命令清理无用资源

Docker自带的prune系列命令是最安全的清理方式,不会影响运行中的服务:

  • 清理停止的容器、未被使用的镜像(包括中间层镜像)、无关联的网络和悬空卷:
    docker system prune -a
    
    执行前会列出要删除的资源,确认后按回车即可;如果想跳过确认,加-f参数。
  • 单独清理未被任何容器使用的卷(需注意:如果你的Django项目用了数据库卷,确认已备份或该卷无用再执行):
    docker volume prune
    

2. 清理容器日志(常见空间占用大户)

容器运行产生的日志默认存储在overlay2的读写层中,长期运行的Django容器可能积累大量日志:

  • 查看目标容器的日志文件路径:
    docker inspect --format='{{.LogPath}}' <容器ID/名称>
    
  • 安全截断日志文件(不会中断容器运行):
    sudo truncate -s 0 <上述命令输出的日志路径>
    
  • 配置日志大小限制,防止后续积累:
    创建或编辑/etc/docker/daemon.json,添加日志轮转配置:
    {
      "log-driver": "json-file",
      "log-opts": {
        "max-size": "100m",
        "max-file": "3"
      }
    }
    
    重启Docker服务生效:
    sudo systemctl restart docker
    

3. 深度清理废弃镜像层(谨慎操作)

如果基础清理后空间仍不足,可以清理未被任何镜像/容器引用的废弃层:

  • 先查看Docker磁盘使用明细,确认可回收资源:
    docker system df -v
    
  • 强制清理所有未被引用的资源(包括卷,生产环境建议先备份再操作):
    docker system prune -a --volumes -f
    

关键注意事项

  • 绝对不要手动删除/var/lib/docker/overlay2下的文件,这会破坏Docker的层存储结构,导致容器或镜像损坏。
  • 生产环境操作前,务必备份Django项目的数据库、配置文件等重要数据,最好在低峰期停止无关容器后再清理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 01:52:38