【问题标题】:Docker container specific disk quotaDocker 容器特定磁盘配额
【发布时间】:2016-07-23 13:39:58
【问题描述】:

每个 Docker 容器默认配置 10GB 磁盘空间,这是 devicemapper 的默认配置,适用于所有容器。如何限制单个容器的 inode 或磁盘配额?

例如:

1 号容器,磁盘 10GB 和 10000 个 Inode 值

容器 #2,磁盘 20GB 和 100000 Inode 值

注意:我知道我们可以使用 docker -d--storage-opt 更改默认值 10GB,但这适用于每个容器。

问题:如何限制单个容器的 inode 或磁盘配额?

【问题讨论】:

    标签: docker docker-volume


    【解决方案1】:

    从 1.12 开始,dm、btrfs 和 zfs 支持此功能。语法是:

    $ docker create -it --storage-opt size=120G fedora /bin/bash
    

    请注意,大小必须(显然)高于您在守护程序选项中设置的任何值。

    Relevant docs link.

    【讨论】:

      【解决方案2】:

      正如issue #16670 中所述(允许限制容器可用磁盘空间的能力)

      一些现有的卷插件能够在带外创建固定大小的卷,然后可以将其挂载到容器运行中。
      或者,您可以考虑编写自己的卷插件,允许您将文件大小嵌入到卷名中。

      老的issue 3804补充道:

      您应该将数据存储在一个卷中。

      AFAIK,唯一默认限制容器磁盘的 Docker 存储后端是 devicemapper。您可以配置守护程序以调整该大小,因此它不会真正意义上的“卡住”。

      devicemapper、zfs 和 btrfs 现在支持配额。
      可能永远不会在 aufs 或覆盖中得到支持。

      基本上,可以在守护程序级别或运行时设置--storage-opt size=1G。

      所以还没有每个容器的配额。可以有 for 卷,只要卷插件支持它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多