Docker容器特定磁盘配额

5
每个Docker容器默认都配置了10 GB的磁盘空间,这是devicemapper的默认配置,并适用于所有容器。那么我如何限制每个容器的inode或磁盘配额呢?
例如:
容器#1具有10GB的磁盘和10000个Inode值 容器#2具有20GB的磁盘和100000个Inode值
注意:我知道我们可以使用docker -d--storage-opt更改默认值10GB,但这将应用于每个容器。
问题:我如何限制每个容器的inode或磁盘配额?
3个回答

3
从1.12版本开始,dm、btrfs和zfs支持此功能。语法如下:
$ docker create -it --storage-opt size=120G fedora /bin/bash

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

相关文档链接。


0

正如在问题#16670(允许限制容器可用的磁盘空间)中所评论的:

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

旧版问题3804添加:

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

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

现在支持devicemapper,zfs和btrfs的配额。
可能永远不会在aufs或overlay中受到支持。

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

因此,目前还没有每个容器的配额限制。如果卷插件支持,可以为卷设置配额限制。

0
跑步是一件始终能帮助我的事情。
systemctl --user stop docker
systemctl --user start docker

当然,如果你有sudo权限,就不需要使用--user参数。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接