overlay存储_Docker镜像存储结构与原理

本文介绍了Docker容器镜像的存储结构,重点讲解了Docker推荐的overlay2存储驱动的工作原理。Docker在不同Linux发行版中选择不同的存储驱动,如overlay2、aufs、devicemapper等。overlay2基于OverlayFS,提供高效性能,要求内核4.0以上。文章还阐述了如何查看和修改Docker的存储驱动,并通过ubuntu:latest镜像示例解析了镜像和容器的组织结构。
摘要由CSDN通过智能技术生成

Docker容器镜像存在哪儿,怎么存放?


Docker容器在运行的过程中,只有小部分的数据可能需要写到容器可写层,因为大部分场景下,我们可以通过Docker volumes来写数据,

但是某些场景下,就是需要往容器可写层写数据,这就是Docker存储驱动Storage Driver出现的原因,这些存储驱动必须是采用层堆叠以及copy-on-write策略。 Docker采用可插拔的方式支持一些不同的存储驱动,存储驱动控制了镜像和容器在宿主机上如何管理以及存储。如果系统内核支持多种存储驱动,在没有明确设置存储驱动时,Docker会根据优先级(btrfs,zfs,overlay2,aufs,overlay,devicemapper,vfs)顺序进行选择,排在前面的储存驱动并不总是会被Docker采用,因为有些存储驱动对文件系统或者内核有硬性要求。

Docker支持如下storage driver:

  • overlay2

Docker优先采用的存储驱动,对于已支持该驱动的Linux发行版,不需要任何进行任何额外的配置。

  • aufs

Docker 18.06以下版本运行在Ubuntu 14.04以及kernel 3.13上,不支持overlay2,首选aufs。

  • devicemapper

默认的配置模式是loopback-lvm,但是在生产环境时Docker不推荐这种模式,它的性能非常差,我们需要将其配置成direct-lvm。 对于早期的CentOS和RHEL,devicemapper是推荐的存储驱动,因为它们对应的内核版本不支持overlay2,不过,我们现在版本的CentOS与RHEL均已支持overlay2。

  • btrfs and zfs

Docker安装所在的宿主机文件系统是btrfs或者zfs,则Docker优先使用它们作为存储驱动,这些文件系统具有一些高级的选项配置,比如创建快照(snapshots)等。

  • vfs

Docker不推荐用于生产环境,只用于测试,性能比较差,可能无法支持copy-on-write策略。 注意一些存储驱动要求使用特殊版本的文件系统,比如aufs仅在Ubuntu或者Debian系统被支持, 并且需要安装一些额外的依赖包,而btrfs仅在SLES被支持。


我们大多数人使用的应该都是Docker社区版本,下面列举了社区版Docker引擎在各Linux发行版中推荐的存储驱动。

5b915fc8241fcb8e429510399629545c.png

注意:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值