美文网首页
Docker的存储驱动

Docker的存储驱动

作者: hiningmeng | 来源:发表于2018-09-12 16:07 被阅读0次

一、原理说明

写时复制(CoW)

CoW就是copy-on-write,表示只在需要写时才去复制,这个是针对已有文件的修改场景。比如基于一个image启动多个Container,如果为每个Container都去分配一个image一样的文件系统,那么将会占用大量的磁盘空间。而CoW技术可以让所有的容器共享image的文件系统,所有数据都从image中读取,只有当要对文件进行写操作时,才从image里把要写的文件复制到自己的文件系统进行修改。所以无论有多少个容器共享同一个image,所做的写操作都是对从image中复制到自己的文件系统中的复本上进行,并不会修改image的源文件,且多个容器操作同一个文件,会在每个容器的文件系统里生成一个复本,每个容器修改的都是自己的复本,相互隔离,相互不影响。使用CoW可以有效的提高磁盘的利用率。

了解了写时复制,就应该注意一个问题:如果第一次修改镜像层内包含的文件,文件的size很大.会造成大量的磁盘IO的开销.所以不建议将需要修改的大文件,集成到镜像内.可以采用数据卷的方式.

用时分配(allocate-on-demand)

用时分配是用在原本没有这个文件的场景,只有在要新写入一个文件时才分配空间,这样可以提高存储资源的利用率。比如启动一个容器,并不会为这个容器预分配一些磁盘空间,而是当有新文件写入时,才按需分配新空间。

Docker存储驱动的作用

将这些分层的镜像文件堆叠起来,并且提供统一的视图.使container的文件系统看上去和我们普通的文件系统没什么区别。
当创建一个新的容器的时候,实际上是在镜像的分层上新添加了一层container layer(容器层).之后所有对容器产生的修改,实际都只影响这一层。

注意
容器层:读写层(可写层)
镜像层:只读层

二、驱动模式

  • 目前,Docker支持OverlayFS,AUFS,Btrfs,Device Mapper,VFS,ZFS等存储驱动
  • docker的存储驱动目前并没有一个通用的,完美的,适用于所有环境的存储驱动.所以需要根据自己的环境来有所选择.
  • 存储驱动在不断的改进与发展
  • 如果从稳定性上的考量,在安装docker的时候会默认根据你的系统环境配置选择一个存储驱动.通常来说使用这个默认的驱动将减少你遇到bug的机会.
  • 如果你的团队使用过RHEL及其相关分支,你可能有关于LVM和Device Mapper的经验.这时建议你使用devicemapper存储驱动.
image.png

相关文章

  • Docker-devicemapper存储驱动研究

    引言 Docker以插件的方式支持多种存储驱动,1.12.6版本的Docker支持的存储驱动包括overlay、a...

  • docker存储驱动

    一句话,docker 存储驱动用于管理docker 镜像和容器。 1. 镜像和层 在了解docker存储驱动之前,...

  • 3、docker入门

    docker状态 该命令会返回所有容器和镜像的数量、docker使用的驱动程序和存储驱动,以及docker的基本配...

  • Docker的存储驱动

    一、原理说明 写时复制(CoW) CoW就是copy-on-write,表示只在需要写时才去复制,这个是针对已有文...

  • docker1.13.1启用device-lvm后,无法启动的处

    docker 版本1.13.1 服务器centos 7.4 将存储驱动改为device-lvm后,docker ...

  • docker 命令

    查看 Docker:docker info 该命令会返回所有容器和镜像的数量、Docker 使用的执行驱动和存储驱...

  • docker容器存储驱动

    以下内容基于overlay2 overlay2为docker存储驱动的一种,负责容器读写(不会修改镜像原始数据)镜...

  • Docker存储驱动之DeviceMapper

    Docker中数据存储相关有几部分,存储驱动(storage driver)用于存储镜像和容器,默认路径为/var...

  • Docker修改存储驱动VFS to Overlay2

    RedHat /CentOS 使用Overlay存储驱动 现象 在centos、Redhat上运行docker的时...

  • Docker存储驱动的选择

    翻译自官网:Docker storage drivers 名词解释 理想的状态是,几乎没有数据会被写入容器可写层,...

网友评论

      本文标题:Docker的存储驱动

      本文链接:https://www.haomeiwen.com/subject/jizvgftx.html