5

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

例如 :

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

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

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

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

4

2 回答 2

3

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

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

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

相关文档链接。

于 2016-07-23T14:28:44.467 回答
1

问题 #16670中所述(允许限制容器可用的磁盘空间)

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

较旧的问题 3804补充说:

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

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

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

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

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

于 2016-07-23T14:20:20.510 回答