zhouu 发表于 2017-12-6 22:00:54

Docker 存储引擎

可插拔存储引擎架构





这种可插拔式的存储架构。可以让你很灵活的去选择适合自己环境的存储引擎。

每个存储引擎都是以Linux 文件系统为基础的。此外,每个存储引擎都以自己的方式自由的管理image层,container层。

也就是说每个种存储引擎在特定的情况下,表现的比其他的更好。



Docker只能运行一个存储引擎,所有的容器被daemon使用一样的存储引擎创建。

Dcoker支持的存储引擎:



docker info 命令查看daemon 中使用了哪个存储引擎:




zane@zane-V:~$ docker info
Containers: 3
Running: 0
Paused: 0
Stopped: 3
Images: 9
Server Version: 1.12.5
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 25
Dirperm1 Supported: true
...
...


Backing Filesystem,实际参照Docker 主机用来创建 /var/lib/docker所使用的文件系统。



使用哪种存储引擎,实际上部分由Backing Filesystem 的类型来决定的。

下表列出了每种存储引擎是否必须和本地后备文件系统匹配:



可以在docker命令行通过 --storage-driver=<name>选项 或 /etc/default/docker 文件 设置选项的 DOCKER_OPTS行



下面的命令设置存储引擎为 divicemapper:






$ dockerd --storage-driver=devicemapper &
$ docker info
Containers: 0
Images: 0
Storage Driver: devicemapper
Pool Name: docker-252:0-147544-pool
Pool Blocksize: 65.54 kB
Backing Filesystem: extfs
Data file: /dev/loop0
Metadata file: /dev/loop1
Data Space Used: 1.821 GB



选择的存储引擎会直接影响到容器应用的性能。



很多公司会使用共享存储系统如:SAN,NAS.这提高了性能和可用性。



记住docker 存储引擎是以Linux 文件系统或者 数据卷管理 为基础的。

各存储引擎官方都给出了最佳实践的文档,使用前可以实践以确定是否合适当前环境。



选择哪个存储引擎?





选择的关键因素

[*]没有哪个存储引擎适合所有的场景
[*]存储引擎是在不断的改善和发展的




稳定性

[*]使用默认存储引擎
[*]遵循CS引擎兼容性中指定的配置。




经验和专业



前瞻性



各存储引擎的优缺点



总结

[*]可插拔存储引擎的架构

[*]存储引擎以主机文件系统为基础


[*]查看使用哪个存储引擎

[*]docker info


[*]主要存储引擎

[*]AUFS
[*]overlay


页: [1]
查看完整版本: Docker 存储引擎