Docker storage driver(十四)
一、storage driver 作用 正常情况下,只有很少量的数据被写入到容器最上层的写入层,并且通过 volume 来写数据,然而我们也会遇到一些情况需要我们可以直接写入到容器的写入层,这我们就需要到了 storage driver 来帮忙。 Docker 使用一些列不同的 storage driver 来管理镜像层和容器层,这些 storage driver 不同于前面说到的 volume。 为了有效的使用 storage drivers,我们可以简单温习一下 storage driver 管理的镜像层和容器层的工作情况。 1、Images and layers 我们可以通过下面的 Dockerfile 文件来理解镜像的分层。 FROM ubuntu:15.04 COPY . /app RUN make /app CMD python /app/app.py 一个镜像是有若干镜像层组成。 Dockerfile 中的每条指令都会生成一个镜像层,除了最上面的一层之外,其他的都是只读的。 最上一层主要是镜像运行时的一些命令。 每一层只是与它之前的层有一些不同,层层堆叠在一起。 创建容器的时候,只是在底层上添加一个新的可写层。这一层通常称为“容器层”。 2、Container and layers 容器和镜像最大的区别在于最上层的可写层,所有对容器的新增或者修改,都会存在在可写层