news 2026/6/11 3:42:58

AUFS是什么

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AUFS是什么

既然你提到了AUFS(Advanced Multi-Layered Unification Filesystem,高级多层联合文件系统),那我们的视线就要从刚才的“手机闪存”瞬间拉回“Docker 容器的核心黑科技”了。

如果说Namespace解决了容器的视线隔离(让进程以为自己独占系统),那么AUFS解决的就是容器的身材管理(让几百个容器共享一份硬盘数据,却互不干扰)。

大白话来说,AUFS 就是一个“高效的图层复用魔术师”。


1. 痛点:如果没有 AUFS,容器会胖成什么样?

假设你用 Docker 启动了 100 个 Ubuntu 容器。

  • 虚拟机的做法:复制 100 份 Ubuntu 镜像,每份2 GB2\text{ GB}2GB,总共吃掉200 GB200\text{ GB}200GB的硬盘空间。
  • 容器的想法:这 100 个容器的底层系统明明一模一样,我能不能让它们共享同一个核心文件,只在各自需要修改的时候才占用新空间?

AUFS 就是为了实现这个想法而生的联合文件系统(Union FS)。它可以把物理上位于不同地方的多个目录(在 Docker 里叫“层”,Layer),挂载并融合成同一个虚拟目录呈现给你。


2. 大白话原理:PS 里的“图层”概念

理解 AUFS 最简单的方式,就是联想Photoshop(PS)的图层,或者小时候玩的透明塑料胶片画

在 AUFS 的世界里,一个 Docker 镜像被拆成了好几个“只读层”和一个“读写层”,它们像叠罗汉一样叠在一起:

  1. 底层(只读层/Read-Only):比如最下面是 Ubuntu 基础系统(Layer 1),上面叠了一个装了 Python 的环境(Layer 2)。这些层是绝对不许修改的。
  2. 顶层(读写层/Read-Write):当你启动容器时,AUFS 会在最上面轻轻盖上一张透明的空白胶片。你在容器里干的所有脏活、累活、写的新数据,全都在这张透明胶片上。
  3. 用户视角:当你从上往下看时,所有的图层融合成了一个完整的、可读可写的正常文件系统。

3. 核心大招:Copy-on-Write(写时复制)

这时候你可能会问:“那如果我想修改底层只读文件里的东西,该怎么办?”

AUFS 掏出了它的看家本领 ——CoW(Copy-on-Write,写时复制)。我们用大白话模拟一下容器里的操作:

  • 你读取一个文件(比如/etc/config):AUFS 会从顶层开始往下找。既然顶层(透明胶片)没有,它就继续往下翻,在底层的“只读层”里找到了。它把内容拿给你看,速度极快,完全是共享读取
  • 你修改一个文件(比如要把/etc/config里的参数改了):这就很有意思了。因为底层是只读的,AUFS不允许你直接改它。相反,内核会默默做一件事:把底层的这个文件“复制一份”,拷贝到最上面的“读写层”(你的透明胶片上),然后你在顶层对这个副本进行修改。

因为顶层的图层遮挡住了底层,下一次你再读取这个文件时,AUFS 在顶层就找到了修改后的版本,底层的那个原始文件就被“隐藏”了。


总结:AUFS 让容器“轻”在哪里?

正因为有了 AUFS(以及后来更主流的替代者Overlay2):

  • 硬盘省到极致:100 个容器共享同一个几百兆的只读底层,每个容器的读写层刚启动时大小为0 B0\text{ B}0B
  • 启动快到飞起:启动一个新容器,不需要去硬盘里复制几十 GB 的文件,只需要在最上层创建一个几秒钟就能搞定的“空白透明胶片(读写层)”,容器瞬间就启动了。

所以,Namespace让进程戴上了墨镜(看不见别人),而AUFS给进程发了一张透明胶片(大家共享底片,各自在胶片上画画)。这就是容器比虚拟机轻量、高效的完整底层逻辑了!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/11 3:39:58

MC9S12X内存映射控制(MMC)详解:地址扩展、多核访问与调试实践

1. 内存映射控制:嵌入式系统的“地址翻译官”在嵌入式开发领域,尤其是面对像MC9S12X这类经典的16位汽车级微控制器时,我们常常会遇到一个核心矛盾:CPU的寻址能力是有限的(比如64KB的本地地址空间)&#xff…

作者头像 李华
网站建设 2026/6/11 3:36:52

Python工程师如何选择适合自己水平的AI工程化工具链?

下面按 Python工程师的典型水平阶段,给你一个「对号入座 渐进式升级」的 AI 工程化工具链选择方案——不堆砌名词,重点告诉你你现在该用哪些、暂不用碰哪些、什么时候再升级。一、【初级】会 Python 了解基础库(刚入行 / 转 AI 初期&#x…

作者头像 李华
网站建设 2026/6/11 3:35:18

终极指南:如何用PCL2启动器让低配电脑流畅运行Minecraft

终极指南:如何用PCL2启动器让低配电脑流畅运行Minecraft 【免费下载链接】PCL Minecraft 启动器 Plain Craft Launcher(PCL)。 项目地址: https://gitcode.com/gh_mirrors/pc/PCL 还在为电脑配置低而无法流畅游玩Minecraft而烦恼吗&am…

作者头像 李华
网站建设 2026/6/11 3:33:57

学术审稿人推荐系统的技术挑战与解决方案

1. 学术审稿人推荐系统的现状与挑战学术同行评审是保障科研质量的核心机制,但随着学术论文数量的爆炸式增长,编辑们面临着一个日益严峻的挑战:如何从海量研究者中精准识别最适合评审某篇论文的专家。传统的人工匹配方式不仅效率低下&#xff…

作者头像 李华