每个 Docker 容器默认配置 10GB 磁盘空间,这是 devicemapper 的默认配置,适用于所有容器。如何将 inode 或磁盘配额限制为单个容器?
例如 :
容器 #1,磁盘 10GB 和 10000 Inode 值
容器 #2,磁盘 20GB 和 100000 Inode 值
注意:我知道我们可以通过使用更改默认值 10GB, docker -d--storage-opt
但这适用于每个容器。
问题:如何限制单个容器的 inode 或磁盘配额?
每个 Docker 容器默认配置 10GB 磁盘空间,这是 devicemapper 的默认配置,适用于所有容器。如何将 inode 或磁盘配额限制为单个容器?
例如 :
容器 #1,磁盘 10GB 和 10000 Inode 值
容器 #2,磁盘 20GB 和 100000 Inode 值
注意:我知道我们可以通过使用更改默认值 10GB, docker -d--storage-opt
但这适用于每个容器。
问题:如何限制单个容器的 inode 或磁盘配额?
从 1.12 开始,dm、btrfs 和 zfs 支持此功能。语法是:
$ docker create -it --storage-opt size=120G fedora /bin/bash
请注意,大小必须(显然)高于您在守护程序选项中设置的任何内容。
如问题 #16670中所述(允许限制容器可用的磁盘空间)
一些现有的卷插件能够在带外创建固定大小的卷,然后可以将其挂载到容器运行中。
或者,您可以考虑编写自己的卷插件,允许您将文件大小嵌入到卷名中。
较旧的问题 3804补充说:
您应该将数据存储在一个卷中。
AFAIK,唯一默认限制容器磁盘的 Docker 存储后端是 devicemapper。您可以配置守护程序以调整该大小,因此它不会在任何真正意义上“卡住”。
devicemapper、zfs 和 btrfs 现在支持配额。
aufs 或覆盖可能永远不会支持。基本上,可以
--storage-opt size=1G
在守护程序级别或运行时设置。
所以还没有每个容器的配额。如果卷插件支持它,可以有卷。