[架构之路-126]-《软考-系统架构设计师》-操作系统-5-虚拟化技术、Docker与虚拟机比较

news2025/1/22 20:50:16

第1章 Docker与虚拟机比较总体概述

1.1 宏观比较

虚拟机和Docker容器技术都是一种虚拟化技术。

虚拟机包含的是整个操作系统的原生镜像,非常的庞大。

docker的镜像只包含最核心的环境,非常小巧。

(1)比较Docker与虚拟机技术的不同:

传统虚拟机,虚拟出一套硬件,运行一个完整的操作系统,然后在这个操作系统上安装和运行软件

Docker 容器内的应用进程直接运行在宿主机的内核(内核级虚拟化),容器内没有自己的内核且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。

每个容器是互相隔离的,每个容器有属于自己的文件系统,容器之间进行不会相互影响,能区分计算资源

(2)容器的优点

  • 应用更快速的交付和部署,打包镜像发布测试,一键运行

  • 更快捷的升级和扩缩容

  • 更简单的系统运维,开发、测试环境高度一致

  • 更高效的计算资源利用

(3)Docker比虚拟机快的原因

Docker有着比虚拟机更少的抽象层,Docker不需要实现硬件资源虚拟化,而是直接使用实际物理机的硬件资源,因此在Cpu、内存利用率上Docker将会在效率上有明显优势。

Docker利用的是宿主机的内核,当新建一个容器时,不需要和虚拟机一样重新加载一个操作系统,避免了引导、加载操作系统内核这个比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载Guest OS,这个新建过程是分钟级别的,而Docker由于直接利用宿主机的操作系统则省略了这个过程,因此新建一个Docker容器只需要几秒钟。

1.2 什么是虚拟化技术

虚拟化是一个广义的术语,在计算机方面通常是指计算元件在虚拟的基础上而不是真实的基础上运行。

虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。

CPU的虚拟化技术可以单CPU模拟多CPU 并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。

1.3 虚拟化与多线程、超线程的比较

虚拟化技术与多进程以及超线程技术是完全不同的。

(1)超线程技术

只是单CPU模拟双CPU来平衡程序运行性能,这两个模拟出来的CPU是不能分离的,只能协同工作。

(2)多进程:

是指在一个操作系统多个程序同时并行运行。

(3)虚拟化技术:

则在同一份硬件上,可以同时运行多个操作系统。而且每一个操作系统中都有多个程序运行,每一个操作系统都运行在一个虚拟的CPU或者是虚拟主机上;

虚拟化技术也与如今VMware Workstation等同样能达到虚拟效果的软件不同,是一个巨大的技术进步,具体表现在减少软件虚拟机相关开销和支持更广泛的操作系统方面。

第2章 Docker详解

2.1 层次结构

2.2 常见概念

(1)镜像(image)

docker镜像就好比是一个模板,可以通过这个模板来创建容器服务

如tomcat镜像 ===》run ===》tomcat01容器(提供服务)

通过一个镜像可以创建多个容器,最终服务运行或项目运行就是在容器中的。

(2)容器(container)

Docker利用容器技术,独立运行一个或一组应用,通过镜像来创建的

拥有启动、停止、删除等基本命令

可以把容器理解为一个建议的虚拟的轻量级的linux系统

(3)仓库(repository)

仓库就是存放Docker镜像的地方,分为共有和私有

Docker Hub(默认是国外的),阿里云等厂商都有提供容器服务

第3章 虚拟机详解

3.1 层次结构

3.2 四种虚拟化技术

虚拟化技术(Virtualization)和分区(Partition)技术是紧密结合在一起,从60年代Unix诞生起,虚拟化技术和分区技术就开始了发展,并且经历了从“硬件分区”->“虚拟机”->“准虚拟机”->“虚拟操作系统”的发展历程。

最早的分区技术诞生自人们想提升大型主机利用率需求。比如在金融、科学等领域,大型Unix服务器通常价值数千万乃至上亿元,但是实际使用中多个部门却不能很好的共享其计算能力,常导致需要计算的部门无法获得计算能力,而不需要大量计算能力的部门占有了过多的资源。这个时候分区技术出现了,它可以将一台大型服务器分割成若干分区,分别提供给生产部门、测试部门、研发部门以及其他部门。 [2]

(1)硬件分区技术

硬件分区技术:硬件资源被划分成数个分区,每个分区享有独立的CPU、内存,并安装独立的操作系统。

在一台服务器上,存在有多个系统实例,同时启动了多个操作系统。

这种分区方法的主要缺点是缺乏很好的灵活性,不能对资源做出有效调配。

随着技术的进步,如今对于资源划分的颗粒已经远远提升,例如在IBM AIX系统上,对CPU资源的划分颗粒可以达到0.1个CPU。

这种分区方式,在目前的金融领域,比如在银行信息中心得到了广泛采用。

(2)虚拟机技术

在虚拟机技术(Virtual Machine Monitor)中,不再对底层的硬件资源进行划分,而是部署一个统一的Host系统。

Host系统上,加装了Virtual Machine Monitor,虚拟层作为应用级别的软件而存在,不涉及操作系统内核。

虚拟层会给每个虚拟机模拟一套独立的硬件设备,包含CPU、内存、主板、显卡、网卡等硬件资源,在其上安装所谓的Guest操作系统。最终用户的应用程序,运行在Guest操作系统中。

这种虚拟机运行的方式有一定的优点,比如能在一个节点上安装多个不同类型的操作系统;

但缺点也非常明显,虚拟硬件设备要消耗资源,大量代码需要被翻译执行,造成了性能的损耗,使其更合适用于实验室等特殊环境。其代表产品有EMC旗下的VMware系列、微软旗下的Virtual PC/Server系列等。

(3)准虚拟机技术

为了改善虚拟机技术(Virtual Machine Monitor)的性能,一种新的准虚拟化技术(Para-Virtualizion)技术诞生了。这种虚拟技术以Xen为代表,其特点是修改操作系统的内核,加入一个Xen Hypervisor层。它允许安装在同一硬件设备上的多个系统可以同时启动,由Xen Hypervisor来进行资源调配。在这种虚拟环境下,依然需要模拟硬件设备,安装Guest操作系统,并且还需要修改操作系统的内核。Xen相对于传统的Virtual Machine Monitor,性能稍有提高,但并不十分显著。为了进一步提高性能,Intel和AMD分别开发了

计算机虚拟化技术

VT和Pacifica虚拟技术,将虚拟指令加入到了CPU中。使用了CPU支持的硬件虚拟技术,将不再需要修改操作系统内核,而是由CPU特有的指令集进行相应的转换操作。

(4)操作系统虚拟化技术:虚拟环境 =》 容器

最新的虚拟化技术已经发展到了操作系统虚拟化,以SWsoft的Virtuozzo/OpenVZ和Sun基于Solaris平台的Container技术为代表,其中Virtuozzo是商业解决方案,而OpenVZ是以Virtuozzo为基础的开源项目。他们的特点是一个单一的节点运行着唯一的操作系统实例,通过在这个系统上加装虚拟化平台,可以将系统划分成多个独立隔离的容器,每个容器是一个虚拟的操作系统,被称为虚拟环境(即VE,Virtual Environment),也被称为虚拟专用服务器(即VPS,Virtual Private Server)。

在操作系统虚拟化技术中,每个节点上只有唯一的系统内核,不虚拟任何硬件设备。

此外,多个虚拟环境以模板的方式共享一个文件系统,性能得以大幅度提升。在生产环境中,一台服务器可根据环境需要,运行一个VE/VPS,或者运行上百个VE/VPS。所以,操作系统虚拟化技术是面向生产环境、商业运行环境的技术。从最早的硬件分区到现阶段的虚拟机和虚拟操作系统,虚拟化技术已经发展了好几代,不同的技术路线也带来了不同的优劣势。选择什么样的技术和产品,用户还是应该结合自身的预算和应用实践来决策。

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

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

相关文章

【CS224W】(task9)图神经网络的表示能力(更新中!!)

note 基于图同构网络(GIN)的图表征网络。为了得到图表征首先需要做节点表征,然后做图读出。GIN中节点表征的计算遵循WL Test算法中节点标签的更新方法,因此它的上界是WL Test算法。 在图读出中,我们对所有的节点表征&…

线程基础复习

线程基础复习 程序:一段静态的代码 进程:正在执行的程序,是操作系统资源分配的最小单位 线程:进程可进一步细分为线程,是进程内部最小的执行单元,是操作系统进行任务调度的最小单元,属于进程 线程与进程的关系 一个进程可以包含多个线程,…

Python3-循环语句

Python3 循环语句 本章节将为大家介绍 Python 循环语句的使用。 Python 中的循环语句有 for 和 while。 Python 循环语句的控制结构图如下所示: while 循环 Python 中 while 语句的一般形式: while 判断条件(condition):执行语句(stat…

Mysql是怎样运行的——B+树索引

💥 前章回顾: 💥 前面我们详细唠叨了InnnoDB数据页的7个组成部分,知道了各个数据页可以组成一个双向链表,而每个数据页中的记录会按照主键值从小到大的顺序组成一个单向链表,每个数据页都会为存储在它里边的…

构建“以客户为中心”的新型商业模式

很难想象一个ERP系统能帮助企业变得更加以客户为中心。然而,如果采用正确的方法,ERP系统确实可以帮助你的企业把客户置于其所有规划、产品开发和运营的中心。 什么是以客户为中心的业务方法? 以客户为中心的业务方法将客户旅程放在每个行动…

图表控件LightningChart.NET 系列教程(九):LightningChart 组件——从工具箱添加至 WPF 项目

LightningChart.NET LightningChart.NET 是一款高性能 WPF 和 Winforms 图表,可以实时可视化多达1万亿个数据点。可有效利用CPU和内存资源,实时监控数据流。同时,LightningChart使用突破性创新技术,以实时优化为前提,大大提升了实…

将字符串生成艺术字pyfiglet.figlet_format

【小白从小学Python、C、Java】【计算机等级考试500强双证书】【Python-数据分析】将字符串生成艺术字pyfiglet.figlet_format选择题以下关于python代码表述错误的一项是?import pyfigletmyText"python"print("【执行】pyfiglet.figlet_format")resultpyf…

第一篇:1.3Inch ISP Screen简介

1.简介官方连接: http://www.lcdwiki.com/zh/1.3inch_IPS_Module我在淘宝买的这款,其驱动IC是st7789,这款的分辨率是相对来说最高的,因此买的时候可能看到比他大的屏幕比这个还便宜.1.1产品介绍1.3寸IPS彩屏,支持 RGB 65K色显示,显示色彩丰富240X240分辨…

Vue2.0开发之——购物车案例-案例说明及导入Header(44)

一 概述 初始项目预览最终项目预览二 案例说明 2.1 初始项目代码结构 2.2 Components组件与项目的对应关系 对应关系: components/Counter:物品数量components/Footer:购物车底部components/Goods:购物车商品components/Header…

第二大脑应用程序Cogito

本文软件是网友 Juijote 推荐; 什么是 Cogito ? 官方号称是 又一个第二大脑应用程序,其实就是一个普通的笔记软件,但既不支持块操作、也不支持双链,更不具备现在流行的白板交互。 先来张官方图片感受一下 安装 在群晖…

Java之反射

反射机制1. Java反射机制的概念1.1 静态&动态语言1.2 反射机制概念1.3 反射机制研究与应用1.4 反射机制的优缺点2. 理解Class类并获取Class实例2.1 Class类介绍2.2 获取Class类的实例2.3 那些类型可以有Class对象?3. 类的加载与CassLoader3.1 Java内存分析3.2 类…

【Azure 架构师学习笔记】-Azure Storage Account(1)-类型简介

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Storage Account】系列。 前言 大数据引起了存储革命, 云计算又为大容量高速存储提供了可能的方案,每个商业云供应商都会提供特殊的云存储。而Azure 对应的云存储则称为存储帐户(Storage accou…

附录4-大事件项目后端-四个模块

目录 1 注册与登陆 1.1 代码 1.2 Bearer token 2 个人中心 3 文章分类 3.1 代码 3.2 添加/更新文章分类确保名称唯一性 3.2.1 两条数据占用 3.2.2 被一条数据同时占用 3.2.3 只有名称被占用 3.2.4 只有别名被占用 4 文章列表 4.1 代码 4.2 筛选文…

电子技术——CMOS反相器

电子技术——CMOS反相器 在本节,我们深入学习CMOS反相器。 电路原理 下图是我们要研究的CMOS反相器的原理图: 下图展示了当输入 vIVDDv_I V_{DD}vI​VDD​ 时的 iD−vDSi_D-v_{DS}iD​−vDS​ 曲线: 我们把 QNQ_NQN​ 当做是驱动源&#…

[AI助力] CS143学习笔记1

CS143, Compilers Lecture01 Course Overview notes 文章目录CS143, Compilers Lecture01 Course Overview notesAI summaryAI notes👇Introduction:Interpreters:Compilers:History:Conclusion:AI flowchart流程图AI flashcards抽认卡AI费曼学习法workflow 总结关于…

Linux 利用 qemu-system-aarch64 实现 x86 机器安装 arm64 的操作系统

文章目录[toc]遇到的问题安装 qemu-system-aarch64创建 aarch64 操作系统准备 aarch64 的 iso 镜像下载 aarch64 的 UEFI 固件创建虚拟磁盘创建虚拟机语言设置时区设置安装来源软件选择磁盘分区Kdump 配置网络配置root 用户密码创建用户安装操作系统遇到的问题 qemu-system-aar…

问题三十五:傅立叶变换——带通滤波

傅里叶变换(Fourier Transform)是一种用于分析信号的数学工具,它将信号分解成若干个不同频率的正弦和余弦函数。在图像处理中,傅里叶变换可以用来分析图像中各个频率的成分,从而进行滤波、增强等操作。 在傅里叶变换中…

电商项目后端框架SpringBoot、MybatisPlus

后端框架基础 1.代码自动生成工具 mybatis-plus &#xff08;1&#xff09;首先需要添加依赖文件 <dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.2</version></dependency><de…

【markdown】markdown语法

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…

亿华通寻路:“氢”能之火,何以燎原?

氢&#xff0c;是能满足人类一切幻想的终极能源。以氢作为燃料的燃料电池&#xff0c;虽然还没有锂电池行业那样风光&#xff0c;但也在新能源战略布局中占有不可撼动的地位。近两年各界玩家跨界入局&#xff0c;更是掀起了持续的投资浪潮。在国内&#xff0c;政策依然是氢能发…