V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
FakerLeung
0.84D
V2EX  ›  Docker

/var/lib/docker 体积太大了?要怎么清理才行?

  •  
  •   FakerLeung · Feb 7, 2025 · 2422 views
    This topic created in 448 days ago, the information mentioned may be changed or developed.

    已经达到 72g 了,执行过 docker system prune 了,还是有 72g🥵救救孩子

    Supplement 1  ·  Feb 8, 2025

    根据大佬们的回复,执行几个命令,大概清理了 30G 的容量:

    1. 清理 docker 的各种资源:docker system prune -a
    2. 有的容器用的 docker-compose 启动,用了挂载卷,容器删了,挂载卷残留,删掉
    docker volume ls -f dangling=true
    docker volume rm $(docker volume ls -qf dangling=true)
    
    1. 看现存容器哪几个体积比较大,再分析:docker images -a --digests

    目前已经删了 30G,大部分是因为直接通过 1panel 的编排启动和删除的,有一个是因为 immich 的上传图片都在 volume 里了,还有就是当时部署着玩的 ollama 和 open-webui,都没用上,结果这俩就占了 9G。

    20 replies    2025-02-08 15:50:53 +08:00
    MADBOB
        1
    MADBOB  
       Feb 7, 2025 via iPhone   ❤️ 1
    docker system prune -a
    FakerLeung
        2
    FakerLeung  
    OP
       Feb 7, 2025
    @MADBOB 就是执行的这个🤣🤣
    nxforce
        3
    nxforce  
       Feb 7, 2025   ❤️ 1
    你绝对是往容器里写数据了,检查一下哪里忘记了挂载 volume 吧。

    有状态的容器需要把写入点挂在到外部空间的。
    yinmin
        4
    yinmin  
       Feb 7, 2025   ❤️ 1
    运行 docker system df 看看啥情况
    cctv6
        5
    cctv6  
       Feb 7, 2025   ❤️ 1
    看看是不是运行中的容器占用了,比如说写了很多日志文件放在容器里面。
    ksc010
        6
    ksc010  
       Feb 7, 2025   ❤️ 1
    我之前遇到过一次, 最后发现是容器的 /tmp/目录临时文件太多了
    yinmin
        7
    yinmin  
       Feb 7, 2025   ❤️ 1
    运行:docker system df -v
    FakerLeung
        8
    FakerLeung  
    OP
       Feb 7, 2025
    @yinmin

    root@server:/var/lib/docker# docker system df
    TYPE TOTAL ACTIVE SIZE RECLAIMABLE
    Images 20 20 17.81GB 160.5MB (0%)
    Containers 20 20 180MB 0B (0%)
    Local Volumes 12 2 1.385GB 584.6MB (42%)
    Build Cache 0 0 0B 0B
    FakerLeung
        9
    FakerLeung  
    OP
       Feb 7, 2025
    @yinmin -v 太多了,也稍微看出一点信息了。谢谢老哥。
    yinmin
        10
    yinmin  
       Feb 8, 2025
    @FakerLeung -v 出来的结果看最上面的 Images space usage 、Containers space usage 、Local Volumes space usage ,看看哪些镜像和容器占用空间大。

    你的 docker 文件合计大概占了大概 20GB 左右,不过 docker 的小文件太多了,占了磁盘 72GB 的空间。因为:ext4 最小存储单位好像是 4KB ,也就是文件只有 1 字节也要占 4KB 硬盘存储。

    你希望 docker 占空间少,可以试试开启压缩功能的 btrfs 磁盘格式,我有 1 个设备没用 ext4 ,而是使用压缩 btrfs ,docker 文件合计 3.3GB ,但是 df -h 显示磁盘仅占用 2.7GB 。
    FakerLeung
        11
    FakerLeung  
    OP
       Feb 8, 2025
    @yinmin 我这个是 pve 上的 vm ,回头研究下怎么开。
    weenhall5
        12
    weenhall5  
       Feb 8, 2025
    看下是不是日志文件没有及时清理
    wangmn
        13
    wangmn  
       Feb 8, 2025
    上次 容器的日志 给我把硬盘干满了,删了容器 调整启动命令 限制日志大小才搞定
    FakerLeung
        14
    FakerLeung  
    OP
       Feb 8, 2025
    @weenhall5 #12 要咋看?
    Yanlongli
        15
    Yanlongli  
       Feb 8, 2025
    先检查是否镜像占用较大
    docker images -a --digests

    再检查容器
    docker ps -as

    如果是容器占用较大,进入容器目录排查哪个目录或文件较大进行清理

    du -d1 -h
    FakerLeung
        16
    FakerLeung  
    OP
       Feb 8, 2025
    @Yanlongli #15 immich 2 个容器占了 3G ,homeassistant 占了 2G ,open-webui 和 ollama 占了 9G ,这俩我只是单纯跑起来了,还没用
    yyluxe
        17
    yyluxe  
       Feb 8, 2025 via iPhone
    @joyhub2140 写好 volume 后 之前的数据从哪清理呀
    nxforce
        18
    nxforce  
       Feb 8, 2025
    @miaoxiaomayi 没有重要数据的话,把容器删了重新起一个,记得设置到挂载 volume 。
    memorycancel
        19
    memorycancel  
       Feb 8, 2025   ❤️ 1
    overlay2 72G 目测是挂载卷太大了
    是不是有的容器用了挂载卷,容器删了,挂载卷留里边成了 dangling ?

    docker volume ls -f dangling=true
    docker volume rm $(docker volume ls -qf dangling=true)
    FakerLeung
        20
    FakerLeung  
    OP
       Feb 8, 2025
    @memorycancel #19
    确实有残留。感谢。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2461 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 51ms · UTC 11:41 · PVG 19:41 · LAX 04:41 · JFK 07:41
    ♥ Do have faith in what you're doing.