gpt4 book ai didi

docker - 显示所有 docker 卷的大小而不安装它们

转载 作者:行者123 更新时间:2023-12-02 18:03:33 25 4
gpt4 key购买 nike

如何列出所有 docker 卷及其各自的大小。

docker volume inspect $(docker volume ls)

提供有关所有卷的信息,但每个卷的大小。

最好,我想检查大小而不必将它们安装到某个容器中,因为我有 > 20 个带有一些神秘“散列”卷名称的卷,可能会产生一些错误,我正在尝试查找。

最佳答案

使用默认 overlay存储驱动程序,Docker 卷没有“大小”(所有卷共享同一文件系统上的空间)。计算卷消耗的空间的唯一方法是遍历其中的所有文件并将它们各自的大小相加。有几种方法可以做到这一点。

我认为最简单的就是挂载卷。例如:

docker volume ls -q |
while read vol; do
echo "=== $vol ==="
docker run --rm -v "$vol:/data" alpine du -sh /data
done

如果你真的想避免 docker run ,您可以执行以下操作(请注意,我们使用 jq 来解析来自 docker volume inspect 的 JSON 输出):
docker volume ls -q |
while read vol; do
mount=$(docker volume inspect "$vol" | jq -r '.[0].Mountpoint')
echo "=== $vol ==="
sudo du -sh "$mount"
done

我更喜欢第一个解决方案,因为即使 docker 守护进程在远程主机或虚拟机上运行,​​它也能工作。例如,上述在 Windows 或 MacOS 上都会失败,因为在这些系统上,Docker 正在运行一个虚拟机,因此在运行 du 时,主机上将看不到卷路径。 .

关于docker - 显示所有 docker 卷的大小而不安装它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62245706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com