【docker系列】存储驱动的作用与选择

举报
字母哥哥 发表于 2022/05/24 23:28:40 2022/05/24
【摘要】 文章目录 一、镜像层与容器层二、存储驱动的作用三、存储驱动的选择 一、镜像层与容器层 在本专栏前文中我们已经为大家介绍过,镜像分层是由Dockerfile定义的构建步骤所决定。镜像层只...

一、镜像层与容器层

在本专栏前文中我们已经为大家介绍过,镜像分层是由Dockerfile定义的构建步骤所决定。镜像层只能读不能写,当容器启动之后所有的数据写入操作都发生在容器层。如果对于镜像层的只读文件,容器运行时想要做修改,实际上是进行了写时复制。这里做简单的回顾,更详细内容可以回头去看本专栏中的《镜像分层原理》

二、存储驱动的作用

下图展示了,多个容器共享一个镜像.镜像层是只读层,不变的.多个容器层在同一个镜像层之上,并且相互独立,互相不影响.

docker 存储驱动的作用就是将镜像层和容器层、数据卷联合起来组成docker容器文件系统。在容器中的应用服务看来,docker容器的文件系统与普通的OS文件系统并无区别

三、存储驱动的选择

存储驱动的类型 描述
overlay2 overlay2是所有当前支持的 Linux 发行版的首选存储驱动程序,不需要做额外配置。
aufs aufs存储驱动是在 Docker 18.06 和更早版本的首选存储驱动程序。在不支持overlay2的早期 Ubuntu 和 Debian发行版中使用该存储驱动。

对于绝大多数较新的linux发行版,overlay2目前都是首选的存储驱动。

Linux 发行版 推荐使用的存储驱动 可选存储驱动
Ubuntu overlay2 overlay¹,devicemapper²,aufs³,zfs,vfs
Debian overlay2 overlay¹,devicemapper²,aufs³,vfs
CentOS overlay2 overlay¹,devicemapper²,zfs,vfs
Fedora overlay2 overlay¹,devicemapper²,zfs,vfs
SLES 15 overlay2 overlay¹,devicemapper²,vfs
RHEL overlay2 overlay¹,devicemapper²,vfs

另外,docker还支持fuse-overlayfsbtrfszfsvfsdevicemapperoverlay 等存储驱动。通常情况下,存储驱动的选择不用运维或开发者操心,docker引擎有自己的一套优先级逻辑选择使用哪个存储驱动。比如:不同的宿主机文件系统格式,会影响存储驱动的选择。

存储驱动 兼容的宿主机文件系统格式
overlay2,overlay xfs with ftype=1,ext4
fuse-overlayfs 任何文件系统格式
aufs xfs,ext4
devicemapper direct-lvm
btrfs btrfs
zfs zfs
vfs 任何文件系统格式

根据上表,建议您安装docker的宿主机服务器OS文件格式是xfs或者ext4格式的,使用overlay2存储驱动。linux操作系统使用df -T查看文件系统的格式


通过docker info命令可以查看当前主机的docker引擎所选择使用的存储驱动,以及宿主机的文件格式。

# docker info  
……
 Storage Driver: overlay2
  Backing Filesystem: xfs
……

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

文章来源: zimug.blog.csdn.net,作者:字母哥哥,版权归原作者所有,如需转载,请联系作者。

原文链接:zimug.blog.csdn.net/article/details/124939519

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。