p18 docker镜像原理之联合文件系统,p19 docker镜像分层的理解

镜像是什么

镜像其实就是一种轻量级的,可执行的一种软件包,用来打包基于环境开发的软件,里面可以包括代码,环境,数据库,配置文件等信息

如何得到镜像?

  1. 可以从镜像仓库下载比方说dockerhub 比方说harbor镜像仓库等等
  2. 通过自己手动写dockerfile来自己制作镜像
  3. 别人给你

docker镜像加载原理

这里先引用一波老师的笔记
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

下面是我自己对于这里的理解--------------------------
Docker 和联合文件系统之间的关系主要体现在分层存储和资源复用上。以安装 MySQL 为例,假设你需要安装两个不同版本的 MySQL:MySQL 5.7 和 MySQL 8.0。每个版本的 MySQL 都需要一些基础文件,但这些文件在不同版本之间可能存在重叠。

  1. 初始安装 MySQL 5.7
  • 假设 MySQL 5.7 需要文件 a、b、c 和 d。
  • 这些文件会被存储在一个基础镜像层中。
  1. 安装 MySQL 8.0
  • 假设 MySQL 8.0 需要文件 a、b、c 和 f。
  • 在安装过程中,Docker 会检查现有的镜像层,发现已经存在文件 a、b 和 c。

因此,Docker 只需要下载并添加文件 f 到一个新的层中。
通过这种方式,Docker 利用联合文件系统的特性,实现了文件的复用,大大节省了存储空间。具体来说:

  • 分层存储:每个版本的 MySQL 都有自己的层,基础文件(如 a、b 和 c)被存储在共享的基础层中。
  • 资源复用:新的版本(如 MySQL 8.0)只需要下载和存储与现有版本不同的部分(如文件 f),而不需要重复下载和存储相同的文件。
  • 高效管理: 这种机制不仅节省了存储空间,还简化了镜像管理和更新过程,使得多版本共存变得更加容易和高效。

总结起来,Docker 通过联合文件系统实现了高效的分层存储和资源复用,从而显著提升了存储效率和管理便利性。

docker镜像和虚拟机之间的区别
Docker 镜像与虚拟机的区别

  1. 操作系统复用:
  • 虚拟机:每个虚拟机都有一个完整的操作系统实例,包括内核、系统库和应用程序。因此,虚拟机镜像通常较大,因为它们包含了整个操作系统的所有组件。
  • Docker 容器:Docker 容器共享宿主机的操作系统内核,而不是每个容器都运行一个独立的操作系统实例。这意味着容器只需要包含运行应用程序所需的库和依赖项,而不需要重复包含操作系统的核心组件。
  1. 分层存储:
  • Docker 镜像:Docker 镜像是由多个层组成的。每一层都是只读的,只有最顶层是可写的。这些层可以被多个容器共享,从而节省存储空间。例如,多个基于相同基础镜像(如 Ubuntu 或 Alpine Linux)的容器可以共享同一基础层。
    虚拟机:虚拟机镜像是一个完整的、独立的文件系统,每个虚拟机都需要自己的文件系统和操作系统实例,因此占用更多的存储空间。
    启动速度:
  • Docker 容器:由于容器共享宿主机的内核,启动速度非常快,通常只需几秒钟。
    虚拟机:虚拟机需要启动一个完整的操作系统实例,启动时间较长,通常需要几分钟。
  1. 资源隔离:
  • Docker 容器:使用命名空间和控制组(cgroups)来实现资源隔离和限制,确保每个容器只能访问分配给它的资源。
  • 虚拟机:通过硬件虚拟化技术实现更强的隔离,但这也带来了额外的开销。
  1. 具体例子
    假设有两个 Docker 容器,一个运行 MySQL 5.7,另一个运行 MySQL 8.0:
  • 基础镜像层:两个容器都可以使用同一个基础镜像(如 ubuntu:20.04),这个基础镜像包含了操作系统的基本文件和工具。
  • 中间层:这两个容器可能共享一些中间层,这些层包含了共同的依赖库和配置文件。
  • 特定层:每个容器的特定层包含了各自版本的 MySQL 及其特有的配置文件和数据。
    通过这种方式,Docker 镜像可以非常高效地利用存储空间,同时保持良好的隔离性和可移植性。

总结
Docker 镜像之所以较小,主要是因为它们共享宿主机的操作系统内核,并且通过分层存储机制复用了大量的基础文件和依赖项。这不仅节省了存储空间,还提高了启动速度和管理效率。相比之下,虚拟机需要为每个实例提供完整的操作系统环境,因此体积更大,启动时间更长。

Docker 镜像的分层结构

这里还是先引用老师的笔记
在这里插入图片描述
下面是我自己的理解

  1. 基础镜像:
    每个 Docker 镜像都始于一个基础镜像。基础镜像通常是一个最小化的操作系统环境,例如 CentOS、Ubuntu 或 Alpine Linux。
    基础镜像包含了操作系统的核心文件和必要的工具。
  2. 中间层:
    在基础镜像之上,可以通过添加新的层来安装软件、配置环境等。
    每个新的层都是基于前一层的,并且只包含新增或修改的部分。
  3. 最终层:
    最终层是你的应用程序或服务所在的层,包含了所有必要的文件和配置

这里注意一点docker的镜像都是只读的!!!
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

10种数据库技术的发展历程与现状

数据库是互联网的基石,存储着海量信息,使信息可被高效地组织、检索和分享。没有数据库,网站无法记忆用户数据,应用无法提供个性化服务,信息交流将失去智能与连贯性。因此,数据库技术极大地推动了互联网的发…

多态的使用和原理(c++详解)

一、多态的概念 多态顾名思义就是多种形态,它分为编译时的多态(静态多态)和运行时的多态(动态多态),编译时多态(静态多态)就是函数重载,模板等,通过不同的参数…

《论软件系统架构风格》写作框架,软考高级系统架构设计师

论文真题 系统架构风格(System Architecture Style)是描述某一特定应用领域中系统组织方式的惯用模式。架构风格定义了一个词汇表和一组约束,词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起…

深度学习训练中的三种网络:监督、半监督和无监督的联系与区别

深度学习训练中,根据训练数据是否有标签,可以将网络分为三大类:监督学习、半监督学习和无监督学习。 目录 一、监督学习网络1.1 特点1.2 典型任务1.3 举例 二、半监督学习网络2.1 特点2.2 典型任务2.3 举例 三、无监督学习网络3.1 特点3.2 典…

两倍多的程序员,不等于两倍多的代码

两倍多的工程师,并不会交付两倍多的代码。为什么很多老板就是想不明白这道理呢?今天这篇文章,咱们就讨论下这事情。 有时候,两件不相关的事情通过一件事情联系起来后,会让我们产生一些非理性想法,甚至相信…

Python自动化-操作Excel

在数据处理和报表生成过程中,Excel是一个经常使用的工具。Python中的openpyxl库可以让您通过编程方式读取、写入和操作Excel文件,从而实现自动化的数据处理和报表生成。本文将介绍openpyxl库的基本用法和常见操作,帮助您快速上手使用Python处…

【android10】【binder】【3.向servicemanager注册服务】

系列文章目录 可跳转到下面链接查看下表所有内容https://blog.csdn.net/handsomethefirst/article/details/138226266?spm1001.2014.3001.5501文章浏览阅读2次。系列文章大全https://blog.csdn.net/handsomethefirst/article/details/138226266?spm1001.2014.3001.5501 目录 …

依赖不对应导致java文件不能正常显示

项目中若出现非正常显示的java文件,检查下是否依赖版本不对应。(前提必须是maven项目)

基于单片机的太阳能热水器控制系统的研究-设计说明书

设计摘要: 本研究旨在设计和实现基于单片机的太阳能热水器控制系统。太阳能热水器是一种有效利用太阳能来加热水的设备,在节能和环保方面具有显著的优势。本研究通过使用单片机技术,将传统的太阳能热水器与智能控制相结合,提高了…

底盘四轮转向运动学解析(含代码)

目录 写在前面的话四轮转向运动学解析四轮转向理论图解robot_control.py 完整代码关键参数完整代码 公式解析(根据代码)反相--模式1详细图解 正相--模式2轴心--模式3 写在前面的话 网上找了很多资料,对于四轮转向运动学描述的很少&#xff0…

如何快速免费搭建自己的Docker私有镜像源来解决Docker无法拉取镜像的问题(搭建私有镜像源解决群晖Docker获取注册表失败的问题)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 Docker无法拉取镜像 📒📒 解决方案 📒🔖 方法一:免费快速搭建自己的Docker镜像源🎈 部署🎈 使用🔖 备用方案⚓️ 相关链接 🚓️📖 介绍 📖 在当前的网络环境下,Docker镜像的拉取问题屡见不鲜(各类Nas查询…

意得辑(Editage)润色全网最低折扣

意得辑(Editage)润色全网最低折扣 优惠代码如图 可以点击我想要咨询~ 意得辑论文润色服务优惠代码|提高论文投稿成功率的最佳选择 推荐理由: 意得辑是全球领先的学术论文润色服务平台,特别适合非母语作者。凭借其专业的编辑团队…

买软件服务白送软件产品还送同等价值的白酒或其它商品,我这不是亏到姥姥家了吗?

原创 超云艾艾 AI智造AI编程 2024年09月23日 21:15 北京 在“企业数字化转型、建设和升级面临的主要难题和解决之道”文中,我提到过,针对企业做数字化转型和升级可能遇到的人才、资金和技术问题,我们可以基于SCSAI平台提供的十大功能以及多年…

巴黎嫩事件对数据信息安全的影响及必要措施

2024年9月17日,黎巴嫩首都贝鲁特发生了多起小型无线电通信设备爆炸事件,导致伊朗驻黎巴嫩大使受轻伤。这一事件不仅引发了对安全的广泛关注,也对数据信息安全提出了新的挑战。 王工 18913263502 对数据信息安全的影响: 数据泄露风…

颍川陈氏——平民崛起的典范

园子说颍川 广州有一处老建筑“陈家祠”,豪华精美堪比皇宫,誉为“岭南建筑艺术明珠”、“新世纪羊城八景”之一,是全国文保单位,4A 级景区。主体建筑以中轴线三座厅堂为中心,由大小十九座单体建筑组成,占地…

SpringBoot教程(三十) | SpringBoot集成Shiro权限框架

SpringBoot教程(三十) | SpringBoot集成Shiro权限框架 一、 什么是Shiro二、Shiro 组件核心组件其他组件 三、流程说明shiro的运行流程 四、SpringBoot 集成 Shiro (shiro-spring-boot-web-starter方式)1. 添加 Shiro 相关 maven2…

基于SpringBoot+Vue+MySQL的电影院购票管理系统

系统展示 用户前台界面 管理员后台界面 系统背景 随着电影产业的蓬勃发展,电影院已成为人们休闲娱乐的重要场所。然而,传统的电影院购票管理系统存在诸多不便,如购票流程繁琐、排队时间长、无法提前选座等问题,给观众的观影体验带…

计算机毕业设计之:微信小程序的校园闲置物品交易平台(源码+文档+讲解)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

计算机毕业设计 校园新闻管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

隐匿发案:David律所代理艺术家Ina Tomecek的两张青蛙版权画维权

案件基本情况:起诉时间:2024-8-14案件号:2024-cv-07196原告:Ina Tomecek原告律所:Law Office of David Gulbransen起诉地:伊利诺伊州北部法院涉案商标/版权:原告品牌简介:Ina Tomece…