2014-12-21 19:24:20 +08:00
## 联合文件系统
2017-11-26 10:06:57 +08:00
2014-12-21 19:24:20 +08:00
联合文件系统([UnionFS](http://en.wikipedia.org/wiki/UnionFS))是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem)。
2014-09-18 10:45:17 +08:00
2014-12-21 19:24:20 +08:00
联合文件系统是 Docker 镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
2014-09-18 10:45:17 +08:00
2014-10-14 13:25:01 +08:00
另外,不同 Docker 容器就可以共享一些基础的文件系统层,同时再加上自己独有的改动层,大大提高了存储的效率。
2014-10-10 09:37:15 +08:00
2017-11-26 10:06:57 +08:00
Docker 中使用的 AUFS( AnotherUnionFS) 就是一种联合文件系统。 `AUFS` 支持为每一个成员目录(类似 Git 的分支) 设定只读( readonly) 、读写( readwrite) 和写出( whiteout-able) 权限, 同时 `AUFS` 里有一个类似分层的概念, 对只读权限的分支可以逻辑上进行增量地修改(不影响只读部分的)。
2014-09-18 10:45:17 +08:00
2017-11-26 10:06:57 +08:00
Docker 目前支持的联合文件系统包括 `OverlayFS` , `AUFS` , `Btrfs` , `VFS` , `ZFS` 和 `Device Mapper` 。