Docker的Graph Driver分析(2)

写时复制

Docker的Graph Driver分析(2)

上边的是普通存储,下边的是按需分配

Docker的Graph Driver分析(2)

联合挂载

Docker的Graph Driver分析(2)



aufs

文件级存储,通过挂载来实现

Docker的Graph Driver分析(2)

Docker的Graph Driver分析(2)

diff目录
保存各层具体文件系统的内容,即对各层挂载前的数据。
layers目录
保存镜像的层ID及之前的父子关系。
mnt目录

镜像的挂载点,即用户在容器里看到的文件系统的内容。



AUFS原理(2)
读写文件时发生了什么。

删除文件和目录时发生了什么。

Docker的Graph Driver分析(2)


Overlay原理(1)
和AUFS相比,只有两点区别:
只有两层。

可以自动将镜像的各层叠加成一层。

Docker的Graph Driver分析(2)


Overlay原理(2)

Docker的Graph Driver分析(2)



devicemapper原理(1)

Docker的Graph Driver分析(2)


devicemapper原理(2)

Docker的Graph Driver分析(2)


devicemapper(3)

映射表

Docker的Graph Driver分析(2)


devicemapper原理(4)

应用层的结构

thin provisioning技术,即存储资源按需分配

Docker的Graph Driver分析(2)


devicemapper原理(5)

数据读写时发生了什么

Docker的Graph Driver分析(2)


https://success.docker.com/article/compatibility-matrix


Docker代码里干了什么
提供了一套Graph driver的***制,允许内建的驱动和插件的实现。

内建几种驱动的具体实现,通过调用驱动实现接口或者命令行来实现对文件的挂载和组织。


Docker的Graph Driver分析(2)

http://cloud.51cto.com/art/201412/461261.htm
http://www.open-open.com/lib/view/open1440555075122.html