首页 > 其他分享 >什么是容器镜像?

什么是容器镜像?

时间:2024-07-04 11:30:24浏览次数:15  
标签:容器 什么 文件系统 bootfs 镜像 Docker 加载

  镜像是容器的模板,容器运行需要借助镜像来装载环境。镜像描述了容器所需的运行时环境,我们以Docker镜像为例来了解镜像到底是什么。

  Docker镜像实际上是由一层一层的文件系统构成,这种层级的文件系统称为UnionFS。UnionFS文件系统是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下。

  Docker镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的镜像。一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把各层文件系统加载起来,这样最终的文件系统会包含所有的底层文件和目录。

  UnionFS主要包含bootloader和kernel,bootloader主要是引导加载kernel,Linux刚启动时会加载bootfs文件系统,在Docker镜像的最底层是bootfs。这一层与我们典型的linux/unix系统是一样的,包含boot加载器内核。当boot加载完之后整个内核就都在内存中了,此时内存的使用权已经由bootfs交给内核了,此时系统也会卸载bootfs。对于一个精简的OS,rootfs可以很小,只需要包括最基本的命令、工具和程序库就行,因为底层直接用host和kernel,自己只需要提供rootfs就行。由此可见对于不同的Linux发行版,bootfs基本是一致的,rootfs会有差别,因此不同的发行版可以公用bootfs。

  在下载镜像的过程中我们可以看到Docker的镜像好像是在一层一层的下载,这些层其实都是文件系统,使用分层思想主要是为了实现文件系统的共享,比如多个镜像都从相同的base镜像构建而来,那么宿主机只需要在磁盘上保存一份base镜像,同时内存中也需要加载一份base镜像,就可以为所有上层文件系统提供服务了。而且镜像的每一层都可以被共享。

  Docker 支持通过扩展现有镜像,创建新的镜像。实际上,Docker Hub 中 99% 的镜像都是通过在 base 镜像中安装和配置需要的软件构建出来的。新镜像是从 base 镜像一层一层叠加生成的。每安装一个软件,就在现有镜像的基础上增加一层,其构建过程 如下:

 

  当容器启动时,一个新的可写层被加载到镜像的顶部。这一层通常被称作“容器层”,“容器层”之下都叫“镜像层”,可写层可以改动,镜像层则为只读的,其容器的结构如下图:

  镜像本身是不可描述的,Docker提供了镜像文件Dockerfile机制,Dockerfile是一个文本文件,内容包含了一条条构建镜像所需的指令和说明, 它可以用来构建镜像,我们还可以通过它了解镜像的信息和功能。因此镜像的产生有仓库拉取、commit、dockerfile构建等几种方式,如图所示:

 

标签:容器,什么,文件系统,bootfs,镜像,Docker,加载
From: https://www.cnblogs.com/zqhIndex/p/18283219

相关文章

  • 什么是容器和容器化部署?
    容器通俗的意思就是用来装东西的家伙,比如“瓶子”、“箱子”、“水杯”等等。K8S中提到容器也有类似的作用,是用来“装”我们需要部署的应用程序,由于我们的应用程序需要运行时环境,因此它内部装了运行时环境、配置文件、程序代码。早期的部署我们可以直接把程序部署到物理......
  • npm/yarn/cnpm 淘宝镜像配置,包版本管理
    一、包管理命令安装为啥要安装这么多,有些情况会安装失败,npm安装最好设置外网代理优先级推荐(个人喜好)cnpm>yarn>pnpm>npm#yarn安装npmiyarn-gyarnconfigsetregistryhttp://registry.npm.taobao.org/#cnpm安装npmicnpm-gcnpmconfigsetregistryht......
  • ComfyUI基础篇:为什么要学 ComfyUI?
    前言:在AI生成图像领域,有许多产品,例如Midjourney和StabilityAI等。为什么要学习ComfyUI呢?我斗胆带大家一起分析一下。目录1.MidjourneyVSStableDiffusion2.SDWebUIVSComfyUI3.总结MidjourneyVSStableDiffusion在回答这个问题之前,我觉得......
  • Power BI仪表板是什么
     在PowerBI中,仪表板(Dashboard)是一个单页的、经常是高度可视化的界面,用于展示来自一个或多个报告的关键信息和指标。仪表板通常用于提供一目了然的数据概览,以便用户快速了解业务状况或其他重要信息。仪表板的特点:单页视图:仪表板通常只包含一页,因此必须有效地组织信息......
  • npm config set registry切换npm镜像源
    要切换npm镜像源,可以使用npmconfigsetregistry命令。以下是切换到官方的npm镜像源的步骤:查看当前npm镜像源:npmconfiggetregistry如果当前的镜像源不是官方的npm镜像源(https://registry.npmjs.org/),则需要切换。切换到官方的npm镜像源:npmconfigsetregistry......
  • 分别使用CMAKE和CLION编译,同一个cmakelists.txt, 为什么clion出错和cmake正常?clion出
    求助!!我在github上找到了一个大型的应用软件的开源代码,使用CMAKE编译,再用VS2017以生成应用程序。因为想改代码,所以使用了CLion在本地运行。但是cmake能够正常通过的文件代码,clion却出错。用的同一个cmakelists.txt,请问为什么clion出错和cmake正常呢?求求~改动了很久cmakelist......
  • Design Tokens 是什么?
    DesignTokens是一种设计和技术理念,它提供了一种与技术无关的方式来存储和管理界面设计中使用的视觉设计属性,如颜色、字体、间距、尺寸等。这些属性以数据结构的形式存在,可以被设计系统自动引用和更新,确保用户界面(UI)在不同平台和设备上具有一致性和可扩展性。DesignTokens不是......
  • 安防视频监控/视频汇聚EasyCVR平台国标GB28181级联上级平台,视频无法播放是什么原因?
    安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,EasyCVR基于云边端一体化架构,具有强大的数据接入、处理及分发能力,可提供7*24小时实时高清视频监控、云端录像、云存储、录像检索与回看、智能告警、平台级联、云台控制、语音对讲、智能AI......
  • 名企面试必问30题(十八)——你觉得你能给团队带来什么?
     1.思路     重点是考察你的自我认知,以及差异化的竞争优势。        首先明确自身优势和能够为团队贡献的方面,然后结合具体案例进行阐述,最后表达对团队合作的期待和积极态度。2.参考解答        我相信我能为团队带来多方面的价值。首先是扎实的......
  • 网络爬虫之什么是代码混淆?初步理解代码混淆
    爬虫逆向之什么是代码混淆?初步理解代码混淆在网络爬虫和逆向工程的过程中,代码混淆是一项常见的技术,旨在保护代码不被轻易理解和逆向。对于爬虫工程师来说,理解并破解代码混淆是一个重要的技能。本文将详细介绍代码混淆的基本概念、常见的混淆技术以及如何逆向这些混淆代码......