Docker(四)-Docker镜像

1.概念

镜像是一种轻量级的、可执行的独立软件包,它包含运行某个软件所需的所有内容,我们把应用程序和配置依赖
打包好形成一个可交付的运行环境(包括代码,运行时需要的库,环境变量和配置文件等),这个打包好的运行环境
就是image镜像文件。通过镜像文件才能生成Docker容器实例(类似java中new出来一个对象)。

2.镜像为什么是分层的

1.UnionFS是所有容器和镜像层背后的底层文件系统,UnionFS它是一种实现的概念,并不是具体的文件系统类型。
2.UnionFS是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下。UnionFS是Docker镜像的基础。镜像可以通过分层来进行继承,基于镜像基础,可以制作各种具体的应用镜像。docker pull 【镜像名:TAG】时,会一次加载多个文件系统,最终形成一个容器实例。

在这里插入图片描述

docker inspect tomcat

在这里插入图片描述

3.镜像加载原理

3.1bootfs(boot file system,用于系统引导的文件系统)
docker的镜像实际上由一层一层的文件系统组成,这种层级的文件系统UnionFS
bootfs主要包含bootloader(根加载)和kernel(linux内核)。bootloader主要是引导加载kernel,linux刚启动时会加载bootfs文件
系统。
Docker镜像最底层就是引导文件系统bootfs(每一个容器都是一个简易版的linux环境)。
这一层与我们典型的linux系统是一样的,包含bootloader和kernel。当bootloader加载完成之后,整个内核就都在内存中了,此时内存的使用权已由bootfs转交给内核,此时系统也会卸载bootfs。
3.2rootfs(root file system,根文件系统)
rootfs在bootfs之上。包含的就是典型linux系统中的/dev,/proc,/bin,/etc等标准目录和文件。rootfs就是各种不同的操作
系统发行版,比如centos等

4.为什么docker镜像采用分层结构

镜像分层最大的好处就是资源共享,比如有多个镜像都是从相同的Base镜像构建而来,那么宿主机只需要在磁盘上保留
一份Base镜像,同时内存中也只需要加载一份Base镜像,这样就可以为所有的容器服务了,而且镜像的每一层都可以
被共享。Docker镜像层都是只读的,当对一个Base镜像修改或者新增内容时,就会在当前镜像层之上创建新的镜像层。
容器层是可写的。用镜像创建容器启动时,一个新的可写层被加载到镜像的顶部。
这一层通常被称作 容器层 , 容器层之下的都叫 镜像层。例:Docker中的镜像分层,支持通过扩展现有镜像,创建新的镜像。类似java继承于一个Base基础类,自己再按需扩展新镜像是从base镜像一层一层叠加生成的。每安装一个软件,就在现有镜像的基础上增加一层

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/30372.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记录锁为什么都加在索引上?

记录锁(Record Lock)加在索引上的原因主要与数据库的性能优化和数据一致性有关。具体来说,锁加在索引上而不是直接加在数据行上,有以下几个关键原因: 1. 提高查询效率 当锁加在索引上时,数据库可以更高效…

wireshark常见使用表达式

目录 1. 捕获过滤器 (Capture Filters)基本捕获过滤器组合捕获过滤器 2. 显示过滤器 (Display Filters)基本显示过滤器复杂显示过滤器协议特定显示过滤器 3. 进阶显示过滤器技巧使用函数和操作符逻辑操作符 4. 常见网络协议过滤表达式示例HTTP 协议HTTPS 协议DNS 协议DHCP 协议…

Scala入门教程

Scala入门教程可以按照以下步骤进行,以下是详细的内容分点表示和归纳: 一、Scala简介 Scala是一门多范式编程语言,融合了面向对象编程和函数式编程的特性。它运行在Java虚拟机(JVM)上,因此可以直接使用Ja…

项目经理究竟一年能挣多少钱?一起来看看

作为现代企业中不可或缺的职业之一,“项目经理”对于企业经营具有非常重要的作用。但是关于项目经理的待遇问题,却一直饱受争议。那么,项目经理一般年薪到底有多少钱呢? 一、项目经理年薪概述 根据行业调查和统计数据&#xff0…

【Java】三种实现网络通讯的方式以及相关协议的使用示例

Java网络 - 应用篇 👾以下代码均经过本人实测,请放心食用。顺便求个关注,谢谢!! 文章目录 Java网络 - 应用篇Socket 篇简介代码实现SockerServerSocketClient RestTemplate 篇简介...ForEntity 与 ...ForObject 对比示…

IPFoxy代理IP:IPv4与IPv6性能与安全性对比

在使用IPFoxy静态代理IP的过程中,经常有小白朋友疑惑,IPv4与IPv6有何区别?他们在性能与安全上的差别如何,又该如何选择?在这篇博文中,我们将从各个方面为您科普这一区别,帮助您更好的选择。 一、…

Bootstrap 间距实用类

Bootstrap 间距实用类(Spacing Utilities) Bootstrap 提供了一套强大的实用类,用于快速设置元素的 margin 和 padding。这些类名遵循一致的命名规则,支持响应式设计,可以在不同的视口尺寸上进行调整。 1. 基本概念 …

柒拾肆- 如何通过数据影响决策(五)- 时序数据

什么是好? 对于 单一时序指标 来说(如最简单的 销售、日活顾客数、订单数 等 ),在决策时该怎样 看 呢? 或者换句话说,数据 应该怎样 表达 才能让决策者做出 更全面 的决策呢? 一、目前的方式 …

MPC与DDP结合案例

MPC与DDP结合概要 MPC与DDP的关系 1. 相似性: 优化过程: 都涉及到优化一个代价函数以求得最优控制输入。动态模型: 都依赖于系统的动力学模型来预测和更新系统状态。2. 差异性: 时间尺度: MPC 是在线控制,每次只优化有限预测区间的控制输入,然后在每个时间步长重新优化。D…

Mkdocs中文系列教程补充(1)

什么是requirements.txt 我的理解是mkdocs依赖的py库 第一次建立MKdocs文档使用 mkdocs new . 完后,比较建议执行一下: pip install -r requirements.txt 不然mkdocs serve后会出现什么 xxx not found ,比如下面这位老哥 示例 mkdocs …

【C++】循环、控制流语句、

8、循环(loops)(1)for loops for循环非常灵活,可以做很多事情。上图红框框出来的代码块就是一个for循环。 for是关键字 for后面内容分为三部分,每部分用分号;隔开 第一部分A是变量的声明&…

Qt入门小项目 | 实现一个图片查看器

文章目录 一、实现一个图片查看软件 一、实现一个图片查看软件 需要实现的功能: 打开目录选择图片显示图片的名字显示图片 在以上功能的基础上进行优化,需要解决如下问题: 如何记住上次打开的路径? 将路径保存到配置文件中&#x…

使用MAT定位线上OOM问题

目录 1.什么是OOM? 2.发生的可能原因 3.常见类型的OOM 4.如何定位问题? 4.1 获取dump文件 4.2 MAT分析 「Leak Suspects」泄露嫌疑 「Histogram」直方图 「dominator tree」支配树 「thread overview」线程视图 目录 1.什么是OOM? 2.发生的可能原因 …

深度学习入门5——为什么神经网络可以学习?

在理解神经网络的可学习性之前,需要先从数学中的导数、数值微分、偏导数、梯度等概念入手,从而理解为什么神经网络具备学习能力。 1.数值微分的定义 先从导数出发理解什么是梯度。某一点的导数直观理解就是在该点的切线的斜率。在数学中导数表示某个瞬…

c#一个udp代码

不使用socket进行 unity下的 private Thread connectThread;private UdpClient udpClient;public Queue LogQueue new Queue();public static UDPManager Instance{get;private set;}private void Awake(){Instance this;}private void Start(){udpClient new UdpClient();…

dolphinscheduler独立集群部署文档(海豚调度)

一、下载解压 服务器内下载(华为云镜像站网址): wget https://mirrors.huaweicloud.com/apache/dolphinscheduler/3.2.0/apache-dolphinscheduler-3.2.0-bin.tar.gz解压:tar -xvf apache-dolphinscheduler-3.2.0-bin.tar.gz 改名…

05-对混合app应用中的元素进行定位

本文介绍对于混合app应用中的元素如何进行定位。 一、app的类型 1)Native App(原生应用) 原生应用是指利用Android、IOS平台官方的开发语言、开发类库、工具等进行开发的app应用,在应用性能和交互体验上应该是最好的。 通俗点来…

Win10录屏,3种方法,快速搞定

在数字化时代,录屏功能已经成为了我们日常生活和工作中不可或缺的一部分。无论是为了制作教学视频,还是为了记录游戏的高光时刻,还是为了保存开会内容,录屏功能都能为我们提供极大的便利。Win10操作系统作为微软推出的经典之作&am…

在k8s中部署Elasticsearch高可用集群详细教程

🐇明明跟你说过:个人主页 🏅个人专栏:《洞察之眼:ELK监控与可视化》🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、Elasticsearch简介 2、为什么在k8s中部署elasti…