Docker镜像分层结构
docker镜像分层结构
用过Dockerfile构建镜像的都知道Dockerfile执行完每一条指令都会创建一个新的镜像,最终的镜像由层层叠加而成。分层的好处
最大的好处就是共享资源。
当多个镜像从相同的base镜像构建而来,那么Docker host只需要在磁盘保存一份base镜像,同时内存中也只需要加载一份base镜像,就可以为所有的容器服务了。
容器的修改并不会影响镜像
当容器启动时,一个新的可写层被加载到镜像的顶层,这一层通常被成为“容器层”。
对容器的改动,无论添加、删除、还是修改文件都只会发生在容器层中。
容器层是可写的,镜像层是只读的。
- 添加文件时,新的文件添加到容器层。
- 读取文件时,从上往下在各个镜像层查找,一旦找到就复制到容器层,然后读入内存。
- 修改文件,从上往下查找,复制到容器层,然后修改之。
- 删除文件,从上往下查找,找到后返回,记录删除操作。
只有当需要修改时才赋值一份数据,这种特性被称为Copy-On-Write。
容器层保存的是镜像层的变化,但不会对镜像本身进行任何修改。这也解释了镜像可以被多个容器共享。
参考
- 镜像分层结构
相关推荐
王道革 2020-11-25
魅惑青花瓷 2020-11-11
lihongtai 2020-11-09
TaoTaoFu 2020-11-06
liaochaowu 2020-11-16
ChlatZed 2020-11-11
xysoul 2020-11-03
changecan 2020-09-22
newisI 2020-09-01
链块学院 2020-09-09
lihy0 2020-09-07
fearlessxjdx 2020-09-04
ChlatZed 2020-08-23
yangkang 2020-11-09
lnkToKing 2020-10-29
ChlatZed 2020-10-27
dusuanyun 2020-09-21
bwyyziq 2020-11-22
pigsmall 2020-11-19