使用DeviceMapper设置光盘配额

我已经将存储插件更改为DeviceMapperDocker info提供以下输出。

 Server Version: 1.9.0 Storage Driver: devicemapper Pool Name: docker-253:1-16-pool Pool Blocksize: 65.54 kB Base Device Size: 107.4 GB Backing Filesystem: extfs Data file: /dev/loop0 Metadata file: /dev/loop1 Data Space Used: 1.821 GB Data Space Total: 268.4 GB Data Space Available: 11.66 GB Metadata Space Used: 2.101 MB Metadata Space Total: 2.147 GB Metadata Space Available: 2.145 GB Udev Sync Supported: true Deferred Removal Enabled: false Deferred Deletion Enabled: false Deferred Deleted Device Count: 0 Data loop file: /var/lib/docker/devicemapper/devicemapper/data Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata Library Version: 1.02.90 (2014-09-01) Execution Driver: native-0.2 

首先,我不知道,如何设置每个容器的配额。 我应该在docker docker run命令中使用flgas吗?

使用devicemapper作为存储插件,不能为每个容器设置磁盘大小。 每个容器的尺寸都是固定的。 而根据docker info的输出,它表明固定大小将达到100GB左右。 但是,根据您的要求,您可以select以下2个选项之一。

a。)你可以把这个固定的大小从100GB改成20GB等其他的值,但是在这种情况下,所有的容器都会有固定的磁盘大小为20GB。 如果你想用这个选项继续下去,你可以按照下面的步骤操作:

  1. 停止docker服务, sudo service docker stop
  2. 删除现有的docker目录(在你的情况下是默认的一个,即/var/lib/docker ) – 注意这将删除所有现有的docker图像和容器。
  3. 使用选项docker daemon -s devicemapper --storage-opt dm.basesize=20G启动docker daemon -s devicemapper --storage-opt dm.basesize=20G
  4. 或者代替步骤3,在文件/etc/default/docker DOCKER_OPTS='-g /var/lib/docker -s devicemapper --storage-opt dm.basesize=5G'添加选项DOCKER_OPTS='-g /var/lib/docker -s devicemapper --storage-opt dm.basesize=5G'并重新启动docker服务

    sudo service docker start

现在,无论你将产生什么样的容器,磁盘大小都将达到20GB。

b。)作为第二个选项,您可以从已设置的任何基本磁盘大小增加现有容器的磁盘大小。 (默认是100GB,如果你按照第一个选项,那么20GB)。 要做到这一点, 这是一个非常有用的文章,你可以遵循。 这可能有助于让您为不同的容器设置不同的磁盘大小。

希望这个答案对您的需求是有用的,谢谢。