存储资源

Docker 为容器提供了两种存放数据的资源:

  • 由 storage driver 管理的镜像层和容器层
  • Data Volume

1、storage driver

容器由最上面一个可写的容器层,以及若干只读的镜像层组成,容器的数据就存放在这些层中。

这样的分层结构最大的特性是 Copy-on-Write:

  • 新数据会直接存放在最上面的容器层
  • 修改现有数据会先从镜像层将数据复制到容器层,修改后的数据直接保存在容器层中,镜像层保持不变
  • 如果多个层中有命名相同的文件,用户只能看到最上面那层中的文件

storage driver 实现了多层数据的堆叠并为用户提供一个单一的合并之后的统一视图。

Docker 支持的 storage driver 有:

1、AUFS

2、Device Mapper

3、Btrfs

4、OverlayFS

5、VFS

6、ZFS

它们都能实现分层的架构,同时又有各自的特性。

应该使用哪个 storage driver 是一个难题,因为:

1、没有哪个 driver 能够适应所有的场景

2、driver 本身在快速发展和迭代

Docker 官方推荐:优先使用 Linux 发行版默认的 storage driver。

Docker 安装时会根据当前系统的配置选择默认的 driver。默认 driver 具有最好的稳定性,因为默认 driver 在发行版上经过了严格的测试。

运行 docker info 查看 Ubuntu 的默认 driver:

对于某些容器,直接将数据放在由 storage driver 维护的层中是很好的选择,比如那些无状态的应用。

1、无状态容器:无状态意味着容器没有需要持久化的数据,随时可以从镜像直接创建。

例如: busybox,它是一个工具箱,不需要保存数据供以后使用,使用完直接退出

    容器删除时存放在容器层中的工作数据也一起被删除

2、有状态容器:它们有持久化数据的需求,容器启动时需要加载已有的数据,容器销毁时希望保留产生的新数据

-------------------------------------------引用来自---------------------------------------------------

https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587706&idx=1&sn=a6c8320acc41fe47c7708b35360da473&chksm=8d3080e3ba4709f537a59137065b8d12cdb45c0fb71cd550302ed99ba2f895c0fcf8aa508a31&scene=21#wechat_redirect

第 6 章 存储 - 038 - Docker 的两类存储资源的更多相关文章

  1. Docker 的两类存储资源 - 每天5分钟玩转 Docker 容器技术(38)

    我们从本章开始讨论 Docker 存储. Docker 为容器提供了两种存放数据的资源: 由 storage driver 管理的镜像层和容器层. Data Volume. 我们会详细讨论它们的原理和 ...

  2. 038、Docker 的两类存储资源(2019-02-27 周三)

    参考https://www.cnblogs.com/CloudMan6/p/7127843.html   Docker为容器提供了两种存放数据的资源:       1.由storage driver  ...

  3. 36-Docker 的两类存储资源

    我们从本章开始讨论 Docker 存储. Docker 为容器提供了两种存放数据的资源: 由 storage driver 管理的镜像层和容器层. Data Volume. 我们会详细讨论它们的原理和 ...

  4. centos7下安装docker(13.1docker存储--data volume)

    我们现在知道docker 有两种存储方式:storage driver和data volume stroage driver这种存储方式主要是存储那些无状态的数据,是镜像层和容器层组成的,而data ...

  5. docker (2)---存储、网络(利用docker容器上线静态网站)

    一.docker底层依赖的核心技术 1.命名空间 (Namespaces) 2.控制组 (Control Groups) 3.联合文件系统 (Union File System) 4.Linux 虚拟 ...

  6. docker 第五篇 存储

    镜像概述复习 Docker镜像由多个只读层叠加而成,启动容器时,Docker会加载只读镜像层并在镜像栈顶部添加一个读写层 如果运行中的容器修改了现有的一个已经存在的文件,那改文件将会从读写层下面的只读 ...

  7. MySQL 的两种存储引擎

    MyISAM 是MySQL的默认数据库引擎(5.5以后默认是InnoDB)性能极佳,但不支持事务处理. InnoDB 是MySQL的数据库常用的数据引擎. MyISAM 和 InnoDB 两者之间有明 ...

  8. Flocker 做为后端存储代理 docker volume-driver 支持

    docker Flocker https://github.com/ClusterHQ/flocker/ 文档: https://docs.clusterhq.com/en/latest/docker ...

  9. MySQL两大存储引擎InnoDB与MyISAM

    1.InnoDB存储引擎 MySQL5.5中InnoDB成为默认的存储引擎.InnoDB是事务型存储引擎,被设计用来处理大量的短期事务.它的性能和自动崩溃恢复特性,使得它在非事务场景中也很流行. 所以 ...

随机推荐

  1. mariadb的flashback到底怎么样???防误删可以,但算不上真正的闪回--再看mariadb 10.3的System-Versioned Tables

    mariadb 在10.2.4引入闪回特性,支持DML(INSERT, DELETE, UPDATE)操作的闪回,不支持DDL语句,使用闪回,必须设置binlog_row_image=FULL. 其原 ...

  2. Win7的话,可能有十种简单的方法进行提速呢

    1.窗口转换更快速 Windows7绚丽的效果的确美观,但漂亮的效果就需要拿速度来交换,因此如果你想要Windows7中的各个窗口切换得更快速,那关闭窗口最大.最小化的动画效果后,你会发现窗口切换得更 ...

  3. python简说(三)字典

    一.字典 stu_info = {"name": "王志华", "age": 18, "addr": "北京& ...

  4. 自动化测试系列:Selenium UI自动化解决iframe定位问题

      更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6735116.html 一个阴雨霏霏 ...

  5. Flask学习【第6篇】:Flask中的信号

    实例化补充 instance_path和instance_relative_config是配合来用的.这两个参数是用来找配置文件的,当用app.config.from_pyfile('settings ...

  6. MUSIC分辨率与克拉美罗下界的关系

    https://www.cnblogs.com/rubbninja/p/4512765.html

  7. ps2016新功能

    1             内容识别缩放(alt ctrl shift c) 2            内容感知移动 3            画笔大小和画笔硬度调整 alt + 鼠标右键:上下为硬度 ...

  8. 集合02_Queue

    Queue集合 模拟队列先进先出(FIFO),不允许随机访问元素 Queue接口定义的方法: //void add(Object e) boolean offer(Object e),加入队列尾部,比 ...

  9. Android 的 ListView 的CheckBox标题栏显示文本之后显示单选框

    https://blog.csdn.net/u013790519/article/details/50036223 2.CheckBox的android:button=”@null”属性代码设置如下: ...

  10. MySQL 安装步骤

    今天用了一下MySQL,刚好看到之前电保存脑的笔记,于是整理了一下,还是记在博客上方便查询. 1.官网下载https://dev.mysql.com/downloads/mysql/之前安装的是mys ...