【玩转Docker小鲸鱼叭】虚拟化技术是什么?

到底什么是虚拟化?

Docker 是一款基于容器虚拟化技术构建的软件,那到底什么虚拟化技术呢?在学习Docker之前,先简单了解下虚拟化技术。

虚拟化是云原生的实现基础,它能够帮助我们更加有效地利用物理计算机硬件。

虚拟化技术是一种将物理资源抽象为虚拟资源,并将虚拟的计算机资源提供给应用程序使用的技术。其中物理资源包括处理器、硬盘、网卡等硬件资源。

虚拟化技术可以将物理资源划分为多个相互独立的虚拟环境,每个虚拟环境都可以运行不同的操作系统和应用程序,从而提高硬件资源的利用率和灵活性,降低硬件成本和管理复杂度。

虚拟化的概念其实不难理解。假设我们有一台32G内存的物理机,如果只运行一个占用4G内存应用程序,这会浪费大量的资源。通过虚拟化技术,我们可以在一台物理机上运行多个应用程序,为不同的应用程序提供虚拟内存服务。运行在同一台物理机的应用程序是相互独立的,互不影响,这充分提高了计算机硬件资源的利用率

虚拟化技术前后的区别如下图所示:

在这里插入图片描述

虚拟化技术实现

虚拟化技术有下面几种常见的实现方案:

  1. 完全虚拟化:完全虚拟化是指在虚拟机上运行操作系统和应用程序,虚拟机中的操作系统和应用程序不知道自己运行在虚拟环境中,而是认为自己运行在物理机上。完全虚拟化需要在虚拟机中添加虚拟化层,用于模拟物理硬件和操作系统。
  2. 容器虚拟化:
    容器虚拟化是指在操作系统层面上实现虚拟化,每个容器可以运行不同的应用程序,但是共享同一个操作系统内核和系统资源。容器虚拟化通常比完全虚拟化和半虚拟化更加轻量级和快速,但是容器之间的隔离性相对较弱。

完全虚拟化技术的典型实现的是虚拟机,容器虚拟化技术的典型实现是Docker。

虚拟机和Docker有何不同?

虚拟机和Docker都是虚拟化技术的实现,但是它们的实现原理和应用场景有所不同。

虚拟机是一种完全虚拟化技术,它可以在物理服务器上创建多个虚拟机,每个虚拟机都具有自己的操作系统、应用程序和系统资源(例如CPU、内存、磁盘、网络等),虚拟机之间是相互隔离的。虚拟机需要在每个虚拟机中模拟物理硬件,因此虚拟机的启动和停止比较慢,占用的系统资源也比较多。虚拟机适用于需要完全隔离的应用场景,例如安全性要求较高的应用程序、不同操作系统之间的互操作等。

Docker是一种容器虚拟化技术,它可以将应用程序打包成容器镜像,运行在Docker引擎中,每个容器都具有自己的应用程序和系统依赖,并共享宿主机的操作系统内核和系统资源。容器启动和停止比较快,占用的系统资源比虚拟机少,因此Docker适用于快速部署和迁移应用程序的场景,例如微服务架构、云原生应用程序、开发环境的搭建和管理等。

虚拟机和Docker容器的原理图如下图所示:

在这里插入图片描述

虚拟机和Docker容器的优缺点如下:

在这里插入图片描述

虚拟化技术的优势

虚拟化技术在行业技术变革中留下了浓墨重彩的一笔,其主要特点和优势如下:

  1. 硬件资源利用率高:虚拟化技术可以将物理资源划分为多个虚拟环境,提高硬件资源的利用率和灵活性,降低硬件成本和管理复杂度。

  2. 系统维护和管理方便:虚拟化技术可以将多个虚拟环境隔离开来,每个虚拟环境可以独立运行和管理,方便系统维护和管理。

  3. 应用程序部署和迁移方便:虚拟化技术可以将应用程序打包成虚拟机镜像或容器镜像,实现应用程序的快速部署和迁移。

总结

  1. 虚拟化技术是一种将物理资源抽象为虚拟资源,并将虚拟的计算机资源提供给应用程序使用的技术。其将物理资源划分为多个相互独立的虚拟环境,每个虚拟环境都可以运行不同的操作系统和应用程序,从而提高硬件资源的利用率和灵活性,降低硬件成本和管理复杂度。
  2. 虚拟化技术实现方案通常有完全虚拟化和容器虚拟化,完全虚拟化的典型实现是虚拟机,容器虚拟化的典型实现是Docker。
  3. 虚拟机和Docker都是虚拟化技术,但是它们的实现原理、资源占用和应用场景有所不同。虚拟机适用于需要完全隔离的应用场景,而Docker适用于快速部署和迁移应用程序的场景。
  4. 通过虚拟化技术可以提高硬件资源的利用率、便于系统的维护和管理并且应用程序可以快速的部署和迁移。


🎉 如果喜欢这篇文章,点赞👍 收藏关注 ✅ 哦,创作不易,感谢!😀

请添加图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

黑客工具软件大全

黑客工具软件大全100套 给大家准备了全套网络安全梓料,有web安全,还有渗透测试等等内容,还包含电子书、面试题、pdf文档、视频以及相关的网络安全笔记 👇👇👇 《黑客&网络安全入门&进阶学习包》 &a…

ROS:move_base路径规划介绍、更换全局路径规划算法(A star、Dijkstra、DWA,测试当前是哪种算法,效果展示图)

前提:需要安装navigation包,才可以运行move_base。 一.move_base路径规划包内容 二.更换全局路径规划算法(A*、Dijkstra、DWA) A*、Dijkstra属于全局路径规划、DWA属于局部路径规划。 1、move_base.launch move_base.launch文…

TCP可靠数据传输

TCP的可靠数据传输 1.TCP保证可靠数据传输的方法 TCP主要提供了检验和、序号/确认号、超时重传、最大报文段长度、流量控制等方法实现了可靠数据传输。 检验和 通过检验和的方式,接收端可以检测出来数据是否有差错和异常,假如有差错就会直接丢失该TC…

Matlab论文插图绘制模板第102期—分组填充箱线图

在之前的文章中,分享了Matlab箱线图的绘制模板: 填充箱线图的绘制模板: 分组箱线图的绘制模板: 进一步,再来分享一下分组填充箱线图的绘制模板。 先来看一下成品效果: 特别提示:本期内容『数据…

NLP——Translation 机器翻译

文章目录 为什么翻译任务困难Statistical Machine TranslationAlignment 对齐summary Neural Machine Translation如何训练 Neural MTloss 设定Trainingdecoding at Test TimeExposure BiasExhaustive Search DecodingBeam Search Decoding什么时候解码停止summary Attention M…

异常数据检测 | Python实现支持向量机(SVM)的异常数据检测

文章目录 文章概述模型描述源码分享学习小结参考资料文章概述 SVM通常应用于监督式学习,但OneClassSVM算法可用于将异常检测这样的无监督式学习,它学习一个用于异常检测的决策函数其主要功能将新数据分类为与训练集相似的正常值或不相似的异常值。 模型描述 OneClassSVM的思…

为什么中国大公司不开发 Linux 桌面应用?

我们Linux平台C端的业务,也就是给大家提供的Linux的个人版本。目前真的是靠爱发电了,逃) 更爱的是,我们不只是提供了X64平台,更是提供了Arm,MIPS64平台的二进制包。 估计国内在Linux平台首发新功能的桌面应…

asp.net高校食谱管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

一、源码特点 asp.net高校食谱管理系统 是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使用c#语言 开发 asp.net高校食谱管理系统VS开发s…

Pytest自动化测试框架生成allure的报告

一、前言 最近通过群友了解到了allure这个报告,开始还不以为然,但还是逃不过真香定律。 经过试用之后,发现这个报告真的很好,很适合自动化测试结果的展示。下面说说我的探索历程吧。 选用的项目为Selenium自动化测试Pytest框架实…

为什么要使用微软的 Application Framework?

我是荔园微风,作为一名在IT界整整25年的老兵,今天来看一下我们为什么要使用微软的 Application Framework? 虽然Application Framework 并不是新观念,它们却在最近数年才成为 PC 平台上软件开发的主流工具。面向对象语言是具体实…

【活动访谈】发力数字基座 推动物联创新—航天科技控股集团AIRIOT4.0平台发布会活动专访

近日,由航天科技控股集团股份有限公司主办的“数字基座 智慧物联—AIRIOT4.0平台发布会”在北京圆满落幕。航天三院科技委总工程师王连宝应邀出席本次会议并接受媒体采访,共同参与访谈的还有AIRIOT产品研发创始人、航天科技控股集团股份有限公司智慧物联…

SpringCloud第三篇:GateWay服务网关

一、为什么需要服务网关: 1、什么是服务网关 传统的单体架构中只需要开放一个服务给客户端调用,但是微服务架构中是将一个系统拆分成多个微服务,如果没有网关,客户端只能在本地记录每个微服务的调用地址,当需要调用的…

【连续介质力学】变形梯度

变形梯度 简介 本节讨论两个不同质点P和Q的之间的相对运动变化 拉伸比和相对伸长 d X ⃗ d\vec X dX : 在参考构形连接质点P和Q的向量,线单元 M ^ \hat M M^: d X ⃗ d\vec X dX 方向的单位向量 d x ⃗ d\vec x dx : 在当前构形连接质点P’和Q‘的向量&#xff…

简要介绍 | 计算机视觉中的开放词汇:挑战与未来

注1:本文系“简要介绍”系列之一,仅从概念上对计算机视觉中的开放词汇(open vocabulary)进行非常简要的介绍,不适合用于深入和详细的了解。 注2:"简要介绍"系列的所有创作均使用了AIGC工具辅助 计算机视觉中的开放词汇&…

深入理解Java虚拟机jvm-对象的内存布局

对象的内存布局 对象头(Header)实例数据(Instance Data)对齐填充(Padding) 在HotSpot虚拟机里,对象在堆内存中的存储布局可以划分为三个部分:对象头(Header)、…

jenkins用户权限管理

环境准备: 登录jenkins: http://192.168.9.190:8091/ admin asdwhl@0 一、用户权限插件安装 1、Dashboard > Manage Jenkins > Manage Plugins > Available(可选插件) 依次安装: Role-based Authorization Strategy Authorize Project

【Git】git push origin master时发生的各类错误汇总

文章目录 一、常见的git命令二、错误一三、错误二四、错误三五、问题解决 一、常见的git命令 使用 git 命令时&#xff0c;您可以执行一系列操作来管理代码仓库。下面是一些常用的 git 命令及其功能&#xff1a; git init: 在当前目录初始化一个新的 git 仓库。git clone <…

stm32超声波测距代码

操作思路&#xff1a; 初始化时将trig和echo端口都置低&#xff0c;首先向给trig 发送至少10 us的高电平脉冲&#xff08;模块自动向外发送8个40K的方波&#xff09;&#xff0c;然后等待&#xff0c;捕捉 echo 端输出上升沿&#xff0c;捕捉到上升沿的同时&#xff0c;打开定时…

Spark大数据处理学习笔记(3.2.2)掌握RDD算子

衔接上文&#xff1a;http://t.csdn.cn/Z0Cfj 文章目录 三、掌握行动算子3.1 归约算子 - reduce()3.2 采集算子 - collect()3.3 首元素算子 - first()3.4 计数算子 - count()3.5 按键计数算子 - countByKey()3.6 前截取算子 - take(n)3.7 排序前截取算子 - takeOrdered(n)[(ord…

vim实用功能汇总

文章目录 1. 读代码1.1 vim中文件跳转1.2 语法高亮模式1.3 Visual 模式 2. 配置vim成为python的IDE 1. 读代码 1.1 vim中文件跳转 vim中文件跳转 这个其实不是靠什么插件完成的&#xff0c;而是vim编辑器自带的功能把光标放在要跳转的文件上&#xff0c;按下gf&#xff0c;即…