资讯专栏INFORMATION COLUMN

Docker镜像分层结构

Magicer / 382人阅读

摘要:镜像分层结构用过构建镜像的都知道执行完每一条指令都会创建一个新的镜像,最终的镜像由层层叠加而成。分层的好处最大的好处就是共享资源。容器层是可写的,镜像层是只读的。容器层保存的是镜像层的变化,但不会对镜像本身进行任何修改。参考镜像分层结构

docker镜像分层结构
用过Dockerfile构建镜像的都知道Dockerfile执行完每一条指令都会创建一个新的镜像,最终的镜像由层层叠加而成。
分层的好处

最大的好处就是共享资源。
当多个镜像从相同的base镜像构建而来,那么Docker host只需要在磁盘保存一份base镜像,同时内存中也只需要加载一份base镜像,就可以为所有的容器服务了。

容器的修改并不会影响镜像

当容器启动时,一个新的可写层被加载到镜像的顶层,这一层通常被成为“容器层”。

对容器的改动,无论添加、删除、还是修改文件都只会发生在容器层中。

容器层是可写的,镜像层是只读的。

添加文件时,新的文件添加到容器层。

读取文件时,从上往下在各个镜像层查找,一旦找到就复制到容器层,然后读入内存。

修改文件,从上往下查找,复制到容器层,然后修改之。

删除文件,从上往下查找,找到后返回,记录删除操作。

只有当需要修改时才赋值一份数据,这种特性被称为Copy-On-Write。

容器层保存的是镜像层的变化,但不会对镜像本身进行任何修改。这也解释了镜像可以被多个容器共享

参考

镜像分层结构

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/27761.html

相关文章

  • 如何理解LXC与Docker之间的主要区别

    摘要:它目前由一个两人的团队领导来自的和。因为目前的架构,应用程序和服务是为正常的多程序操作系统环境设计的,所以需要去寻找一种以的方式来工作或使用工具来支持。是一个告诉如何从镜像用特定的应用程序来创建容器的脚本。公司受到风投支持,积极投入市场。 这篇文章从两个部分来探讨LXC,LXC和Docker的容器托管,以及轻便的容器技术将取代虚拟技术的可能性。 LXC有可能会改变我们如何运行和缩放应用...

    lovXin 评论0 收藏0
  • 都9102年了,还不会Docker?10分钟带你从入门操作到实战上手

    摘要:联调测试,无需依赖他人。针对以上问题,有两种解决方法,一个是自己搭建私有服务,另一个是用云服务的镜像管理平台如阿里云的容器镜像服务。利用,先对阿里云的服务进行登录。推送后,就能在阿里云的仓库上看到这个镜像。 Docker简述 Docker是一种OS虚拟化技术,是一个开源的应用容器引擎。它可以让开发者将应用打包到一个可移植的容器中,并且该容器可以运行在几乎所有linux系统中(Windo...

    sf_wangchong 评论0 收藏0
  • Windows Containers 大冒险: 优化计划(Dockerfile)

    摘要:最终叠加在一起成为新的镜像。优化的方法就是使用和换行符将多条语句合并成一条执行。第一点,所有指令在中需要大写,从而和具体的操作命令区分开来。第二点,对于过长的指令请合理使用换行符,从而增加的可阅读性。 前言 有一定旅行经验的朋友都知道,即使在出发前制定了详细的出行计划,也会在路途中因为各式各样的状况而不得不重新修改计划。这个状况在我们编写Dockerfile时一样存在。花了30分钟编写...

    Enlightenment 评论0 收藏0
  • Docker学习之基本概念及安装(1)

    摘要:分层存储因为镜像包含操作系统完整的文件系统,其体积往往是庞大的,因此在设计时,就充分利用的技术,将其设计为分层存储的架构。分层存储的特征还使得镜像的复用定制变的更为容易。 什么是Docker Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 L...

    lvzishen 评论0 收藏0

发表评论

0条评论

Magicer

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<