理想的是,非常少的数据能够写入容器的writeable layer。对于大数据量,会使用Docker volume。

但是,有时仍然需要向容器的layer写入较多的数据,这就是storage driver的用处。

Docker支持多种storage driver,使用可插拔的架构。storage driver控制镜像和容器如何存储和管理。

选择storage driver通常需要考虑3个层次。

1。 如果kernel支持多个storage driver,Docker会优先顺序;如果没有明确指定storage dirver,首先需要满足下面的前提条件。

如果是最少的配置,可以选择btrfs或zfs,它们都依赖backing filesystem。

最为推荐的是overlay2,然后是overlay,它们都不需要额外的配置。而overlay2是Docker CE的默认选择。

devicemapper是接下来的选择,但是对于生产环境需要direct-lvm,因为在zero配置时,loopback-lvm性能并不好。

2。选择受限于Docker edition。

Docker CE支持的storage driver

Linux版本 推荐storage driver
Docker CE on Ubuntu aufs,devicemapper,overlay,zfs,vfs overlay2(Ubuntu 14.04+、Ubuntu 16.04+)
Docker CE on Debian aufs,devicemapper,overlay,vfs overlay2(Debian Stretch)
Docker CE on CentOS devicemapper,vfs
Docker CE on Fedora devicemapper,vfs overlay(expermental) overlay2(Fedora 26+,experimental)

如果可以的话,overlay2是推荐的storage driver。最开始安装Docker时,默认是aufs,现在默认是overlay2.

如果,希望继续使用aufs,则需要专门配置,并且安装额外的包,比如linux-image-extra

支持的backing filesystems

对于Docker,backing filesystem是/var/lib/docker/ 的位置,但一些storage driver只能在某些backing filesystems下工作

Storage driver 支持的backing filesystems
overlay,overlay2 ext4,xfs
aufs ext4,xfs
devicemapper direct-lvm
btrfs btrfs
zfs zfs

【参考】

1。docker官网:https://docs.docker.com/storage/storagedriver/select-storage-driver/

results matching ""

    No results matching ""