Docker aufs 存储驱动

简介: Docker aufs 存储驱动

Docker aufs 存储驱动
存储驱动根据操作系统底层的支持提供了针对某种文件系统的初始化操作以及对镜像层的增、删、改、查和差异比较等操作。目前存储系统的接口已经有 aufs、btrfs、devicemapper、voerlay2 等多种。在启动 docker deamon 时可以指定使用的存储驱动,当然指定的驱动必须被底层操作系统支持。下面我们以 aufs 存储驱动为例介绍其工作方式。

先来简单认识一下 aufs,aufs(advanced multi layered unification filesystem)是一种支持联合挂载的文件系统。简单来说就是支持将不同目录挂载到同一个目录下,这些挂载操作对用户来说是透明的,用户在操作该目录时并不会觉得与其他目录有什么不同。这些目录的挂载是分层次的,通常来说最上层是可读写层,下面的层是只读层。所以,aufs 的每一层都是一个普通的文件系统。
当需要读取一个文件 A 时,会从最顶层的读写层开始向下寻找,本层没有,则根据层之间的关系到下一层开始找,直到找到第一个文件 A 并打开它。
当需要写入一个文件 A 时,如果这个文件不存在,则在读写层新建一个,否则像上面的过程一样从顶层开始查找,直到找到最近的文件 A,aufs 会把这个文件复制到读写层进行修改。
由此可以看出,在第一次修改某个已有文件时,如果这个文件很大,即使只要修改几个字节,也会产生巨大的磁盘开销。
当需要删除一个文件时,如果这个文件仅仅存在于读写层中,则可以直接删除这个文件,否则就需要先删除它在读写层中的备份,再在读写层中创建一个 whiteout 文件来标志这个文件不存在,而不是真正删除底层的文件。
当新建一个文件时,如果这个文件在读写层存在对应的 whiteout 文件,则先将 whiteout 文件删除再新建。否则直接在读写层新建即可。

目录
相关文章
|
6天前
|
关系型数据库 MySQL Linux
事项驱动的项目管理工具Dectask的Docker安装教程
Dectask是智能驱动的新一代项目协作工具,本人介绍其Docker安装教程。
28 2
|
数据可视化 开发工具 git
GitOps 驱动的 Docker Compose 可视工具化来了,图形化编辑器上玩转容器编排
Docker Compose 简化了多容器应用的部署,但随着应用复杂度上升,文本配置方式逐渐暴露出维护难、协作效率低等问题。基于 GitOps 的可视化 Docker Compose 工具应运而生,通过图形界面降低使用门槛,提升配置准确性和团队协作效率。结合 GitOps,实现配置变更的版本追踪、自动化部署与环境一致性,为多容器应用管理提供高效、安全的解决方案。
|
12月前
|
存储 Linux Docker
使用Docker存储驱动
【10月更文挑战第9天】
240 3
|
12月前
|
存储 Kubernetes Docker
|
存储 Linux Docker
在Docker中,如何更改Docker的默认存储设置?
在Docker中,如何更改Docker的默认存储设置?
|
存储 监控 Docker
如何限制docker使用的cpu,内存,存储
如何限制docker使用的cpu,内存,存储
|
存储 缓存 运维
【Docker 专栏】Docker 镜像的分层存储与缓存机制
【5月更文挑战第8天】Docker 镜像采用分层存储,减少空间占用并提升构建效率。每个镜像由多个层组成,共享基础层(如 Ubuntu)和应用层。缓存机制加速构建和运行,通过检查已有层来避免重复操作。有效管理缓存,如清理无用缓存和控制大小,可优化性能。分层和缓存带来资源高效利用、快速构建和灵活管理,但也面临缓存失效和层管理挑战。理解这一机制对开发者和运维至关重要。
935 8
【Docker 专栏】Docker 镜像的分层存储与缓存机制
|
存储 数据管理 数据安全/隐私保护
【Docker专栏】Docker存储卷管理:数据持久化的关键
【5月更文挑战第7天】本文探讨了Docker容器中数据持久化的关键——存储卷,包括其独立于容器生命周期的特性、数据共享与迁移能力。Docker提供默认、命名、数据卷容器和挂载宿主机目录四种卷类型。创建与管理涉及`docker volume create`、`ls`、`run`等命令。最佳实践建议使用命名存储卷,定期备份,避免存储敏感数据,并清理未使用卷。了解和有效管理存储卷能提升容器灵活性和数据管理效率。
338 5
【Docker专栏】Docker存储卷管理:数据持久化的关键
|
存储 Linux Docker
【Azure 应用服务】应用服务中发布Docker Container,如何添加卷(如Azure File Share)以便永久存储文件
【Azure 应用服务】应用服务中发布Docker Container,如何添加卷(如Azure File Share)以便永久存储文件
100 0
|
存储 测试技术 数据安全/隐私保护
docker 存储挂载比较
docker 存储挂载比较