从零开始入门 K8s:深入剖析 Linux 容器( 十 )

最上面的是 mergedir , 是一个统一视图层 。 从 mergedir 里面可以看到 upper 和 lower 中所有数据的整合 , 然后我们 docker exec 到容器里面 , 看到一个文件系统其实就是 mergedir 统一视图层 。

文件操作
接下来我们讲一下基于 overlay 这种存储 , 怎么对容器里面的文件进行操作?

先看一下读操作 , 容器刚创建出来的时候 , upper 其实是空的 。 这个时候如果去读的话 , 所有数据都是从 lower 层读来的 。

写操作如刚才所提到的 , overlay 的 upper 层有一个写实数据的机制 , 对一些文件需要进行操作的时候 , overlay 会去做一个 copy up 的动作 , 然后会把文件从 lower 层拷贝上来 , 之后的一些写修改都会对这个部分进行操作 。

然后看一下删除操作 , overlay 里面其实是没有真正的删除操作的 。 它所谓的删除其实是通过对文件进行标记 , 然后从最上层的统一视图层去看 , 看到这个文件如果做标记 , 就会让这个文件显示出来 , 然后就认为这个文件是被删掉的 。 这个标记有两种方式:

推荐阅读