14. Docker引擎 - Docker与AUFS实践

2017-01-01  本文已影响0人  yi_zhe

AUFS是Docker最早支持的, 非常稳定, 在生产环境大量部署, 有强大的社区支持
它让

但有部分Linux发行版不支持它, 因为它并没有进入Linux内核

镜像分层与AUFS共享

AUFS是一个联合文件系统, 它将Linux上的多个目录互相叠加起来, 提供一个统一的视角, AUFS使用union mount 实现这些功能.
AUFS通过一个挂载点, 将多个目录叠加起来, 使用一个统一的视角暴露出来.

使用AUFS的容器读写

AUFS在文件层面上进行操作, 所以哪怕一个文件只需修改一小部分, 整个文件都会被复制, 如果修改的文件很大或者处于较低的镜像层级, 那么将会带来显著的性能影响.(只在一个文件第一次修改时会发生搜索和拷贝, 拷贝到容器层后就可以写了)

使用AUFS驱动删除文件

AUFS存储驱动通过在容器层放一个whiteout file实现文件的删除. whiteout file会使只读镜像中的被覆盖的文件变得模糊不清(删除).

Paste_Image.png

使用AUFS重命名目录

调用rename系统调用时, 如果目录是非空的, 那么将返回错误EXDEV(cross-device link not permitted), 所以应用程序需要处理EXDEV.

Docker中配置AUFS

通过下面命令查看系统是否支持AUFS

grep aufs /proc/filesystems
nodev aufs

有上面输出, 说明支持, 否则不支持. 如果支持可以通过传递--storage-driver=aufs给dockerd使用AUFS. 上节已经写了配置过程.

本地存储与AUFS

AUFS与容器性能

AUFS的兼容性

不支持rename系统调用

上一篇 下一篇

猜你喜欢

热点阅读