可插拔存储引擎架构

 
这种可插拔式的存储架构。可以让你很灵活的去选择适合自己环境的存储引擎。
每个存储引擎都是以Linux 文件系统为基础的。此外,每个存储引擎都以自己的方式自由的管理image层,container层。
也就是说每个种存储引擎在特定的情况下,表现的比其他的更好。
 
Docker只能运行一个存储引擎,所有的容器被daemon使用一样的存储引擎创建。
Dcoker支持的存储引擎:
 

docker info 命令查看daemon 中使用了哪个存储引擎:
zane@zane-V:~$ docker info
Containers:
Running:
Paused:
Stopped:
Images:
Server Version: 1.12.
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs:
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:
Images:
Storage Driver: devicemapper
Pool Name: docker-:--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

Docker 存储引擎的更多相关文章

  1. docker存储结构解析

    由于aufs并未并入内核,故而目前只有Ubuntu系统上能够使用aufs作为docker的存储引擎,而其他系统上使用lvm thin provisioning(overlayfs是一个和aufs类似的 ...

  2. Docker系列05—Docker 存储卷详解

    本文收录在容器技术学习系列文章总目录 1.存储卷介绍 1.1 背景 (1)docker 的 AFUS 分层文件系统 docker镜像由多个只读层叠加面成,启动容器时,docker会加载只读镜像层并在镜 ...

  3. docker日志引擎说明

    docker原生支持众多的日志引擎,适用于各种不同的应用场景,本篇文档对其作一个简单的说明. Docker日志引擎说明 docker支持的日志引擎如下: none:关闭docker的回显日志, doc ...

  4. Docker存储卷篇

    Docker存储卷篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.    一.写时复制(COW)机制 所谓写时复制的效果如上图所示: Docker镜像由多个只读层叠加而成,启动容器 ...

  5. 【转帖】技术选型之Docker容器引擎

    技术选型之Docker容器引擎 https://segmentfault.com/a/1190000019462392 图过不来的 原作者写的挺好的 题外话 最近对Docker和Kubernetes进 ...

  6. MySQL存储引擎入门介绍

    什么是MySQL? MySQL 是一种关系型数据库,在Java企业级开发中非常常用,因为 MySQL 是开源免费的,并且方便扩展.阿里巴巴数据库系统也大量用到了 MySQL,因此它的稳定性是有保障的. ...

  7. MySQL数据库和InnoDB存储引擎文件

    参数文件 当MySQL示例启动时,数据库会先去读一个配置参数文件,用来寻找数据库的各种文件所在位置以及指定某些初始化参数,这些参数通常定义了某种内存结构有多大等.在默认情况下,MySQL实例会按照一定 ...

  8. Mysql存储引擎及选择方法

    0x00 Mysql数据库常用存储引擎 Mysql数据库是一款开源的数据库,支持多种存储引擎的选择,比如目前最常用的存储引擎有:MyISAM,InnoDB,Memory等. MyISAM存储引擎 My ...

  9. Mysql存储引擎比较

    Mysql作为一个开源的免费数据库,在平时项目当中会经常使用到,而在项目当中我们的着重点一般在设计使用数据库上而非mysql本身上,所以在提到mysql的存储引擎时,一般都不曾知道,这里经过网上相关文 ...

随机推荐

  1. 安卓手机关闭底部键盘灯的方法(htc G11亲测有效)

    还在因为看电子书和看电影时键盘灯刺眼而苦恼吗?下面提供一个方法关闭键盘灯,让你轻松DIY! 1、手机必须先Root。使用RE管理器,按照这个路径,找到文件:brightness sys/devices ...

  2. IOS笔记046-UIApplication/导航控制器

    UIApplication 每一个应用都有自己的UIApplication对象,而且是单例的 通过[UIApplication sharedApplication]可以获得这个单例对象 一个iOS程序 ...

  3. 【数据结构与算法】Fibonacci Sequence

    学计算机的对 Fibonacci 都并不陌生,在课堂上一讲到递归几乎都会提到 Fibonacci 数列.不久前,我对 Fibonacci 产生了一些兴趣,就在这里把自己的想法给记录下来. 递推公式: ...

  4. Mysql实战之高可用HMA

    author:JevonWei 版权声明:原创作品 主节点高可用 MHA是一款开源的MySQL的高可用程序,他为MySQL主从复制架构提供了automating master failover功能.M ...

  5. Log4j官方文档翻译(五、日志输出的方法)

    日志类提供了很多方法用于处理日志活动,它不允许我们自己实例化一个logger,但是提供给我们两种静态方法获得logger对象: public static Logger getRootLogger() ...

  6. [luogu_P1251][LOJ#6008]「网络流 24 题」餐巾计划

    [luogu_P1251][LOJ#6008]「网络流 24 题」餐巾计划 试题描述 一个餐厅在相继的 \(N\) 天里,第 \(i\) 天需要 \(R_i\) 块餐巾 \((i=l,2,-,N)\) ...

  7. 【VBA】标准Sub/Function定义,带ScreenUpdating、On Error GoTo

    [说明] 标准Sub/Function定义,带ScreenUpdating.On Error GoTo Sub AutoFillRole() '--------------- ERROR MSG--- ...

  8. python2.7运行出现的Warning: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal

    运行出现如下错误 uncode编码警告:在unicode等价比较中,把两个参数同时转换为unicode编码失败.中断并认为他们不相等. windows下的字符串str默认编码是ascii,而pytho ...

  9. MEF 注入[转载]

    领域服务的时候,用到MEF的注入有参构造函数的方法,your master was attracted,打算稍微深挖一下,这篇来对此知识点做个总结. 一.知识点回顾 MEF作为IOC的方式之一,它的主 ...

  10. centOS 7 安装java sdk 并测试是否安装成功

    CentOS 6.X 和 7.X 自带有OpenJDK runtime environment  (openjdk).它是一个在linux上实现开源的Java 平台. 安装方式: 1.输入以下命令,以 ...