使用带有--storage-opt标志指定的选项来配置特定的存储驱动程序 。
这是Linux上devicemapper的配置文件示例:
{
"storage-driver": "devicemapper",
"storage-opts": [
"dm.thinpooldev=/dev/mapper/thin-pool",
"dm.use_deferred_deletion=true",
"dm.use_deferred_removal=true"
]
}
dm.thinpooldev
指定用于精简池的自定义块存储设备。
如果将块设备用于设备映射器存储,则最好lvm 用于创建和管理精简池卷。然后将该卷交给Docker以专门创建映像和容器所需的快照卷。
管理Engine外部的精简池是使Docker利用设备映射器精简资源调配作为Docker容器的后备存储的功能最丰富的方法。基于lvm的精简池管理功能的重点包括:自动或交互式精简池调整大小支持,动态更改精简池功能,当lvm激活精简池时自动进行精简元数据检查等。
如果没有提供精简池,则作为回退,将创建回送文件。环回速度非常慢,但是可以在不进行任何预配置存储的情况下使用。强烈建议您在生产中不要使用环回。确保您的Engine守护程序提供了一个 --storage-opt dm.thinpooldev参数。
例:
$ sudo dockerd --storage-opt dm.thinpooldev=/dev/mapper/thin-pool
dm.directlvm_device
作为提供上述精简池的替代方法,Docker可以为您设置一个块设备。
例:
$ sudo dockerd --storage-opt dm.directlvm_device=/dev/xvdf
dm.thinp_percent
设置用于存储的传入块设备的百分比。
例:
$ sudo dockerd --storage-opt dm.thinp_percent=95
dm.thinp_metapercent
设置传入的块设备用于元数据存储的百分比。
例:
$ sudo dockerd --storage-opt dm.thinp_metapercent=1
dm.thinp_autoextend_threshold
设置lvm尝试自动扩展可用空间之前使用的空间百分比的值[100 =禁用]
例:
$ sudo dockerd --storage-opt dm.thinp_autoextend_threshold=80
dm.thinp_autoextend_percent
设置值百分比值以在lvm 尝试自动扩展可用空间时增加精简池的数量[100 =禁用]
例:
$ sudo dockerd --storage-opt dm.thinp_autoextend_percent=20
dm.basesize
指定创建基本设备时要使用的大小,这会限制图像和容器的大小。默认值为10G。请注意,瘦设备本来就是“稀疏”的,因此一个几乎是空的10G设备不会在池上使用10 GB的空间。但是,如果设备更大,则文件系统将为空情况使用更多空间。
可以在守护程序重新启动时增加基本设备的大小,这将使所有将来的映像和容器(基于这些新映像)都具有新的基本设备大小。
例子
$ sudo dockerd --storage-opt dm.basesize=50G
这会将基本设备的大小增加到50G。如果现有基本设备大小大于50G,则Docker守护程序将引发错误。用户可以使用此选项来扩展基本设备的大小,但是不允许缩小。
此值会影响系统范围的“基本”空文件系统,该文件系统可能已由拉取的映像初始化和继承。通常,对此值进行更改需要其他步骤才能生效:
$ sudo service docker stop
$ sudo rm -rf /var/lib/docker
$ sudo service docker start