可插拔的存储驱动架构
Docker支持可插拔的存储引擎架构, 给予用户根据自己实际的环境选择不同存储引擎的灵活性. 每一种存储驱动都是基于一种Linux文件系统或者卷管理器, 所以存储驱动能够自由地实现对镜像层和容器层的处理, 这也就意味着, 在特定场景下一些存储驱动比其他存储驱动更高效.
Docker支持的存储驱动技术和它们对应的驱动名字
技术 | 存储驱动名字 |
---|---|
OverlayFS | overlay 或 overlay2 |
AUFS | aufs |
Btrfs | btrfs |
Device Mapper | devicemapper |
VFS | vfs |
ZFS | zfs |
使用docker info命令可查看正在使用何种存储驱动
[root@localhost ~]# docker info
...
Storage Driver: devicemapper
...
Backing Filesystem: xfs
...
[root@localhost ~]#
上面的信息表明, Docker daemon使用devicemapper存储驱动, Backing Filesystem是xfs, 意味着devicemapper驱动操作的是一个xfs文件系统, backing filesystem指出了Docker宿主在/var/lib/docker下使用的文件系统.
使用何种存储驱动部分上决定于Docker本地存储区域使用的文件系统, 有些存储驱动支持多种文件系统, 有些则不然
存储驱动 | 通常用于何种文件系统 | 无法用于何种文件系统 |
---|---|---|
overlay | ext4 xfs | btrfs aufs overlay overlay2 zfs eCryptfs |
overlay2 | ext4 xfs | btrfs aufs overlay overlay2 zfs eCryptfs |
aufs | ext4 xfs | btrfs aufs eCryptfs |
btrfs | btrfs only | N/A |
devecemapper | direct-lvm | N/A |
vfs | debugging only | N/A |
zfs | zfs only | N/A |
可以传递--storage-driver=<name>给dockerd命令, 或者在/etc/default/docker文件的DOCKER_OPTS行加入--storage-driver=<name>来指定存储驱动
共享存储系统和存储驱动
选择哪一个存储驱动
- 稳定性
- 使用Linux发行版默认的存储驱动
- 遵循商业支持版的配置
- 经验和专业知识
选取一个你的团队和组织熟悉的存储驱动, - 远景规划
根据下图的特性进行选取
- Overlay和Overlay2
OverlayFS有两种实现的存储引擎, 它们的实现是不同的, 在磁盘存储上也是不兼容的. 如果在这两者中切换, 会导致所有镜像都会重新创建, Docker1.11前只能使用overlay, 而Overlay2要求内核版本在4.0以上
网友评论