为什么Docker需要一个联盟文件系统

时间:2015-09-25 05:45:16

标签: docker filesystems containers

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

我正在寻找具体的技术细节/内部而非高级答案。

1 个答案:

答案 0 :(得分:27)

习惯于:

  • 每次将图像作为新容器运行时,避免重复一整套文件
  • 将更改隔离到其自己的图层中的容器文件系统,允许从已知内容重新启动相同的容器(因为删除容器时将删除包含更改的图层)

UnionFS

  

为其他文件系统实现union mount。它允许透明地覆盖单独文件系统的文件和目录(称为分支),形成单个连贯的文件系统。
  合并分支中具有相同路径的目录的内容将在新的虚拟文件系统中的单个合并目录中一起显示。

     

这允许文件系统显示为可写,但实际上不允许写入更改文件系统,也称为 copy-on-write

如果您没有使用UnionFS,则200个图像运行5次,因为5个容器分隔容器意味着1GB的磁盘空间。

详情请见" How does a Docker image work?"。
有关更多技术细节,请参阅: