一尘不染

Docker为什么需要联合文件系统

docker

Docker对Union File系统(例如AUFS)创建容器究竟做了什么?如果Docker必须使用常规文件系统而不是联合文件系统,那么会有什么缺点?

我正在寻找具体的技术细节/内部信息,而不是高水平的答案。


阅读 455

收藏
2020-06-17

共1个答案

一尘不染

它用于:

  • 避免在每次将图像作为新容器运行时复制一组完整的文件
  • 在其自己的层中隔离对容器文件系统的更改,从而允许从已知内容重新启动同一容器(因为移除容器后,具有更改的层将被取消)

UnionFS

为其他文件系统实现联合安装。它允许透明地覆盖独立文件系统(称为分支)的文件和目录,从而形成单个一致的文件系统。
合并分支内具有相同路径的目录的内容将在新的虚拟文件系统内的单个合并目录中一起看到。

这样可以使文件系统看起来可写,但实际上不允许写入更改文件系统,也称为
写时复制

如果没有UnionFS,一个200MB的映像将运行5次,因为5个独立的容器意味着1GB的磁盘空间。

请参阅“ Docker映像如何工作? ”。
有关更多技术细节,请参见:

2020-06-17