用过Dockerfile构建镜像的都知道Dockerfile执行完每一条指令都会建立一个新的镜像,最终的镜像由层层叠加而成。
最大的好处就是共享资源。
当多个镜像从相同的base镜像构建而来,那么Docker host只须要在磁盘保存一份base镜像,同时内存中也只须要加载一份base镜像,就能够为全部的容器服务了。docker
当容器启动时,一个新的可写层被加载到镜像的顶层,这一层一般被成为“容器层”。内存
对容器的改动,不管添加、删除、仍是修改文件都只会发生在容器层中。资源
容器层是可写的,镜像层是只读的。it
只有当须要修改时才赋值一份数据,这种特性被称为Copy-On-Write。容器
容器层保存的是镜像层的变化,但不会对镜像自己进行任何修改。这也解释了镜像能够被多个容器共享。file