通过 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 左右,主要用于备份照片和一些资料
1
yinmin 179 天前
/volume1/@docker/btrfs/subvolumes 是底层 brtfs 的文件系统,你是不是配置了一个 brtfs 盘是 78GB ? 这是 brtfs 的整盘容量。类似 windows 下,你用固定大小的 vhdx 文件创建了 80GB 的 F 盘,然后你在 C 盘里看到了一个 80GB 的 vhdx 文件,一样道理。
|
2
yinmin 179 天前
你使用命令 df -h -T ,看一下是不是有 1 个 Filesystem ,Type 是 btrfs ,Avail 是 78GB 的?
|
3
lxh1983 179 天前
用这个命令就能清理没有用到的 Docker volume 。docker volume prune
|
4
yinmin 179 天前
我找了一台 docker 小主机,磁盘是 btrfs 格式,使用了 2GB ,剩余空间 12GB ,du --max-depth=1 -h /var/lib/docker/btrfs/subvolumes 显示这个目录占用了 12GB 空间。
忽略它即可。 |
5
lfitzgerald OP @yinmin #2 没有这个 78G 的
|
6
lfitzgerald OP @yinmin #4 你的意思这个是显示问题?实际并没有占用空间?
|
7
lfitzgerald OP |
8
flyqie 179 天前 via Android
docker system prune 试试?
|
9
yinmin 179 天前
@lfitzgerald btrfs fi usage / 是啥情况?
|
10
Jacksu 179 天前
这里是存储 dockers 镜像和运行 docker 容器产生的内容,群晖如果你用了 btrfs 系统的话,docker 会使用 btrfs 后端,会给每个镜像层做子卷的,执行 sudo btrfs subvol list /volume1/@docker 可以看到子卷情况。你这个情况如果不是 btrfs ,占用的硬盘可能要翻倍。你应该检查你的 docker 容器,是谁在产生垃圾。
|
11
Jacksu 179 天前
运行容器后,会在 docker 存储区产生运行文件,比如网心云的容器魔方,在底层文件系统是 ext4 ,docker 存储后端是 overlay2 的时候,运行网心云的容器,磁盘占用直接飙升 6G+
其他的容器比如青龙面板,你安装的各种依赖也是会直接存这里的。 |
12
Jacksu 179 天前
要排查也不难,你把嫌疑容器一一关闭再删除(只删容器不会丢失持久化数据的),再检查空间占用。
|
13
lfitzgerald OP @Jacksu #12 算了,不折腾了,有钱换大一点硬盘
|