【问题标题】:Relationship between Docker --storage-opt size and actual container disk usageDocker --storage-opt 大小与实际容器磁盘使用量的关系
【发布时间】:2022-01-01 12:42:16
【问题描述】:

我想为我们的 Docker 容器设置磁盘使用配额,并且我正在尝试根据当前使用情况确定合理的限制。我的计划是使用--storage-opt size= 选项来设置限制,但我无法确定要检查正在运行的容器的确切内容,以了解它们当前使用了多少空间,表示为直接相关的数字我将在--storage-opt size= 中设置。

例子:

如果我的容器当前正在使用 X GB 的磁盘空间,并且我想给它一个 Y GB 的缓冲区,那么我想设置 --storage-opt size=Z,其中 Z=X+Y

我可以确定一个合理的 Y 值,但我无法弄清楚要检查正在运行的容器上的具体内容以获取 X 的当前值。

The docs--storage-opt size= 设置“容器 rootfs 大小”。

如何准确找到正在运行的容器的当前 rootfs 大小?

我想这可能是在容器内运行du -h -d 0 / 返回的数字。但是,我对此持怀疑态度,因为这个数字包括安装在主机上的一个非常大的共享数据驱动器的大小,因此它并不是真正特定于容器的。这真的是正确的数字吗?因此,在设置挂载它的每个容器的大小配额时,我必须包括共享驱动器的大小?我希望不会,因为我真的不在乎这个共享驱动器上存储了多少数据,而且它会随着时间的推移而增长。我只想确保实际容器内的存储空间很小,并且不会随着时间的推移显着增长。

假设上面的du 命令不是我需要的,我应该实际检查什么?

注意:我正在使用以 xfs 作为后备文件系统的 overlay2 存储驱动程序。

【问题讨论】:

    标签: docker storage docker-container


    【解决方案1】:

    经过更多测试,我发现了以下内容。我不能 100% 确定它是否适用于所有存储驱动程序,但它似乎在我们的 Docker 环境中以这种方式工作,使用 overlay2 存储驱动程序和 xfs 作为后备文件系统。

    --storage-opt size= 选项施加的限制仅对容器使用的额外存储进行限制,不包括 Docker 映像大小或任何外部安装的卷。我发现检查每个容器使用多少额外存储的最简单方法 docker ps --size 命令。

    示例输出:

    CONTAINER ID   IMAGE                 COMMAND                CREATED        STATUS          PORTS        NAMES            SIZE
    d35144402a2    aspecialdockerimage   "/startmyservice..."   20 hours ago   Up 33 minutes                processing_svc   7.83MB (virtual 11.6GB)
    

    输出中“大小”列中的第一个数字是容器正在使用的额外空间量,可以用作确定适当配额时容器需要多少空间的指导。请注意,括号中右侧的“虚拟”数字包括 docker 映像的大小,在选择配额大小时不应考虑。

    因此,在我在原始问题中给出的示例中,X 的值为 7.83MB,如果我想给它一个额外的 1.17MB 缓冲区 (Y),总共 9MB (Z),那么我会使用--storage-opt size=9M

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-16
      • 2016-09-03
      • 1970-01-01
      • 2014-08-15
      • 1970-01-01
      • 2012-09-13
      • 1970-01-01
      • 2023-03-29
      相关资源
      最近更新 更多