Docker容器特定磁盘配额

时间:2016-07-23 13:39:59

标签: docker docker-volume

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

例如:

  

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

     

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

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

问题:如何将inode或磁盘配额限制为单个容器?<​​/ p>

2 个答案:

答案 0 :(得分:2)

从1.12开始,这支持dm,btrfs和zfs。语法是:

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

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

Relevant docs link.

答案 1 :(得分:0)

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

  

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

较旧的issue 3804添加:

  

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

     

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

     devicemapper,zfs和btrfs现在支持

配额   可能无法在aufs或overlay中获得支持。

     

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

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