V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要把任何和邀请码有关的内容发到 NAS 节点。

邀请码相关的内容请使用 /go/in 节点。

如果没有发送到 /go/in,那么会被移动到 /go/pointless 同时账号会被降权。如果持续触发这样的移动,会导致账号被禁用。
lfitzgerald
V2EX  ›  NAS

群晖 docker 的/volume1/@docker/btrfs/subvolumes 占用空间异常大

  •  
  •   lfitzgerald · 180 天前 · 1406 次点击
    这是一个创建于 180 天前的主题,其中的信息可能已经有所发展或是发生改变。

    通过 docker 的命令 docker system df 查询结果: $ docker system df

    显示用了不到 7 个 G 但是用 du --max-depth=1 -h /volume1/@docker/btrfs/subvolumes 却显示占用了 78 个 G

    看名称和大小似乎有些是重复的,不知道怎么删除这些异常的占用

    执行过 docker system prune -a 运行的 docker 容器如下:

    因为我是用的零刻 EQ12 和两个块固态硬盘组的阵列,可用容量只有 470G 左右,主要用于备份照片和一些资料

    13 条回复    2024-06-26 10:38:38 +08:00
    yinmin
        1
    yinmin  
       180 天前
    /volume1/@docker/btrfs/subvolumes 是底层 brtfs 的文件系统,你是不是配置了一个 brtfs 盘是 78GB ? 这是 brtfs 的整盘容量。类似 windows 下,你用固定大小的 vhdx 文件创建了 80GB 的 F 盘,然后你在 C 盘里看到了一个 80GB 的 vhdx 文件,一样道理。
    yinmin
        2
    yinmin  
       180 天前
    你使用命令 df -h -T ,看一下是不是有 1 个 Filesystem ,Type 是 btrfs ,Avail 是 78GB 的?
    lxh1983
        3
    lxh1983  
       180 天前
    用这个命令就能清理没有用到的 Docker volume 。docker volume prune
    yinmin
        4
    yinmin  
       180 天前
    我找了一台 docker 小主机,磁盘是 btrfs 格式,使用了 2GB ,剩余空间 12GB ,du --max-depth=1 -h /var/lib/docker/btrfs/subvolumes 显示这个目录占用了 12GB 空间。

    忽略它即可。
    lfitzgerald
        5
    lfitzgerald  
    OP
       180 天前
    @yinmin #2 没有这个 78G 的
    lfitzgerald
        6
    lfitzgerald  
    OP
       180 天前
    @yinmin #4 你的意思这个是显示问题?实际并没有占用空间?
    lfitzgerald
        7
    lfitzgerald  
    OP
       180 天前
    flyqie
        8
    flyqie  
       180 天前 via Android
    docker system prune 试试?
    yinmin
        9
    yinmin  
       179 天前
    @lfitzgerald btrfs fi usage / 是啥情况?
    Jacksu
        10
    Jacksu  
       179 天前
    这里是存储 dockers 镜像和运行 docker 容器产生的内容,群晖如果你用了 btrfs 系统的话,docker 会使用 btrfs 后端,会给每个镜像层做子卷的,执行 sudo btrfs subvol list /volume1/@docker 可以看到子卷情况。你这个情况如果不是 btrfs ,占用的硬盘可能要翻倍。你应该检查你的 docker 容器,是谁在产生垃圾。
    Jacksu
        11
    Jacksu  
       179 天前
    运行容器后,会在 docker 存储区产生运行文件,比如网心云的容器魔方,在底层文件系统是 ext4 ,docker 存储后端是 overlay2 的时候,运行网心云的容器,磁盘占用直接飙升 6G+
    其他的容器比如青龙面板,你安装的各种依赖也是会直接存这里的。
    Jacksu
        12
    Jacksu  
       179 天前
    要排查也不难,你把嫌疑容器一一关闭再删除(只删容器不会丢失持久化数据的),再检查空间占用。
    lfitzgerald
        13
    lfitzgerald  
    OP
       179 天前
    @Jacksu #12 算了,不折腾了,有钱换大一点硬盘
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2660 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 07:22 · PVG 15:22 · LAX 23:22 · JFK 02:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.