Docker 镜像分层设计 & 联合文件系统

docker分层原理

在使用dockerfile构建镜像时,docker会进行分层构建,每个镜像层代表了一个Dockerfile中的instruction(指令),每一个指令都会在原有层的基础上添加新的一层,这些镜像层可以被重复使用,包括在不同的镜像中使用,包括在不同的镜像中使用,可以有效的节省存储空间;

当我们制作镜像时,就是把基础镜像层和我们的容器层做了合并,然后将容器层指向基础镜像层,这样就行程了一个两层的镜像;

镜像制作时,可能有多层镜像层共同依赖底层的基础镜像层:

所以在使用dockerfile时,合理分层,使其能够复用,可以减少磁盘空间的使用;

联合文件系统

docker在构建镜像时,其联合文件系统只会给第一个目录读写权限,其他目录只有只读权限,当用户对某文件做更改时,不会更改源文件,而是将更改保存在具有读读写权限的目录中,当用户需要查看文件时,会讲文件的更改内容与源文件做merge后展示给用户;

docker使用镜像创建容器时,镜像层的内容是不会被修改的,修改存储在容器层,而用户查看容器时,是在视图层,用户在视图层查看到的文件是容器层的修改和镜像层的源文件merge后的文件;

当文件被多层修改后,展示给用户时就需要多层merge后展示给用户,所以分层并非越多越好,当层数过多时,需要合并部分指令;

docker镜像就是很多的目录和文件,创建容器时,mount.namespace将这些镜像的文件挂载到容器中;

容器 = 进程
镜像 = 目录 & 文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值