Docker之几种storage-driver比较

title: Docker之几种storage driver比较
date: 2015-11-27 18:16:22
tags: docker

categories: Docker Others

本文介绍Docker使用的几种storage driver。目前Docker支持如下几种storage driver:

目录:
* storage driver的选择
* aufs
* aufs中文件的读写
* aufs这中文件的删除
* Docker中使用aufs
* device mapper
* device mapper中镜像的分层和共享
* device mapper中的读操作
* device mapper中的写操作
* device mapper在Docker中的性能表现
* overlayfs
* overlayfs中镜像的分层和共享
* overlayfs中镜像和容器的结构
* overlayfs中容器的读写操作
* 在Docker中使用overlayfs
* overlayfs在Docker中的性能表现

Storage Driver的选择

可以使用docker info命令查看你的Docker使用的storage driver,我的机器上的信息如下:

Storage Driver: aufs
...
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 ...

可以看到的我本机上使用的storage driveraufs。此外,还有一个Backing Filesystem它只你本机的文件系统,我的是extfsaufs是在extfs之上创建的。你能够使用的storage driver是与你主机上的Backing Filesystem有关的。比如,btrfs只能在backing filesystem为btrfs上的主机上使用。storage driverBacking Filesystem的匹配关系如下表所示(表来自Docker官网Docker docs):

|Storage driver |Must match backing filesystem |
|---------------|------------------------------|
|overlay        |No                            |
|aufs           |No                            |
|btrfs          |Yes                           |
|devicemapper   |No                            |
|vfs*           |No                            |
|zfs            |Yes                           |

你可以通过在docker daemon命令中添加--storage-driver=<name>标识来指定要使用的storage driver,或者在/etc/default/docker文件中通过DOCKER_OPTS指定。
选择的storage driver对容器中的应用是有影响的,那具体选择哪种storage driver呢?答案是“It depends”,有如下几条原则可供参考:
- 选择你及你的团队最熟悉的;
- 如果你的设施由别人提供技术支持,那么选择它们擅长的;
- 选择有比较完备的社区支持的。

AUFS

AUFSDocker最先使用的storage driver,它技术很成熟,社区支持也很好,它的特性使得它成为storage driver的一个好选择,使用它作为storage driverDocker会:
- 容器启动速度很快
- 存储空间利用很高效
- 内存的利用很高效

尽管如此,仍有一些Linux发行版不支持AUFS,主要是它没有被并入Linux内核。
下面对AUFS的特性做介绍:

AUFS是一种联合文件系统,意思是它将同一个主机下的不同目录堆叠起来(类似于栈)成为一个整体,对外提供统一的视图。AUFS是用联合挂载来做到这一点。
AUFS使用单一挂载点将多个目录挂载到一起,组成一个栈,对外提供统一的视图,栈中的每个目录作为一个分支。栈中的每个目录包括联合挂载点都必须在同一个主机上。
Docker中,AUFS实现了镜像的分层。AUFS中的分支对应镜像中的层。
此外,容器启动时创建的读写层也作为AUFS的一个分支挂载在联合挂载点上。

aufs中文件的读写

AUFS通过写时复制策略来实现镜像镜像的共享和最小化磁盘开销。AUFS工作在文件的层次上,也就是说AUFS对文件的操作需要将整个文件复制到读写层内,哪怕只是文件的一小部分被改变,也需要复制整个文件。这在一定成度上会

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值