【docker系列】存储驱动的作用与选择
一、镜像层与容器层
在本专栏前文中我们已经为大家介绍过,镜像分层是由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-overlayfs
、btrfs
、zfs
、 vfs
、 devicemapper
、overlay
等存储驱动。通常情况下,存储驱动的选择不用运维或开发者操心,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
- 点赞
- 收藏
- 关注作者
评论(0)