虚拟机与容器 的 区别

VM和容器都可以帮助您充分利用可用的计算机硬件和软件资源。容器是块中的新孩子,但VM已经并且将继续在各种规模的数据中心中非常受欢迎。


如果您正在寻找在云中运行自己的服务的最佳解决方案,您需要了解这些虚拟化技术,它们如何相互比较,以及每种技术的最佳用途。这是我们的快速介绍。


基本定义 - 虚拟机和容器


什么是虚拟机?

虚拟机(VM)是计算机系统的仿真。简而言之,它可以在实际上是一台计算机的硬件上运行看起来很多单独的计算机。
操作系统(OS)及其应用程序从单个主机服务器或主机服务器池共享硬件资源。每个VM都需要自己的底层操作系统,并且硬件是虚拟化的。管理程序或虚拟机监视器是创建和运行VM的软件,固件或硬件。它位于硬件和虚拟机之间,是虚拟化服务器所必需的。


自从负担得起的虚拟化技术和云计算服务出现以来,大大小小的IT部门都将虚拟机(VM)作为降低成本和提高效率的一种方式。


但是,VM可能占用大量系统资源。每个VM不仅运行操作系统的完整副本,还运行操作系统需要运行的所有硬件的虚拟副本。这很快就会增加大量的RAM和CPU周期。与运行单独的实际计算机相比,这仍然是经济的,但对于某些应用程序来说,这可能是过度的,这导致了容器的开发。
虚拟机的好处

  • 应用程序可用的所有OS资源
  • 建立管理工具
  • 建立安全工具
  • 更熟知的安全控制

流行的VM提供商

  • VMware vSphere
  • VirtualBox
  • Xen
  • Hyper-V
  • KVM

什么是容器?

使用容器,而不是像虚拟机(VM)那样虚拟化底层计算机,只是虚拟化操作系统。


容器位于物理服务器及其主机操作系统之上 - 通常是Linux或Windows。每个容器共享主机操作系统内核,通常也包括二进制文件和库。共享组件是只读的。共享操作系统资源(如库)可以显着减少重现操作系统代码的需要,并且意味着服务器可以通过单个操作系统安装来运行多个工作负载。因此容器非常轻 - 它们只有几兆字节,只需几秒钟即可启动。与容器相比,VM需要几分钟才能运行,并且比同等容器大一个数量级。


与VM相比,容器所需的全部功能都足以支持程序和库以及运行特定程序的系统资源。实际上,这意味着您可以将容器上的应用程序的容量设置为使用容器的两到三倍,而不是使用VM。此外,使用容器,您可以为开发,测试和部署创建可移植,一致的操作环境。

容器类型


Linux容器(LXC) - 最初的Linux容器技术是Linux容器,通常称为LXC。LXC是一种Linux操作系统级虚拟化方法,用于在单个主机上运行多个隔离的Linux系统。


Docker - Docker最初是作为一个构建单应用程序LXC容器的项目,向LXC引入了一些变化,使容器更易于使用和灵活使用。它后来变成了自己的容器运行时环境。在较高的层次上,Docker是一个可以高效创建,发布和运行容器的Linux实用程序。


容器的好处

  • 减少IT管理资源
  • 缩小了快照的大小
  • 更快地启动应用程序
  • 减少和简化安全更新
  • 减少传输,迁移,上传工作负载的代码

热门容器供应商

  • Linux容器
    • LXC
    • LXD
    • CGManager
  • docker
  • Windows Server容器

用于VMs与容器的使用
容器和VM都有优点和缺点,最终的决定取决于您的具体需求,但有一些一般的经验法则。

  • 当您需要在服务器上运行多个应用程序或需要管理各种操作系统时,VM是运行需要所有操作系统资源和功能的应用程序的更好选择。
  • 当您最大的优先事项是最大化在最少数量的服务器上运行的应用程序数量时,容器是更好的选择。

差异:虚拟机与容器虚拟机集装箱


对于大多数人来说,理想的设置可能包括两者。

利用当前的虚拟化技术状态,VM的灵活性和容器的最小资源需求协同工作,为环境提供最大的功能。

如果您的组织正在运行同一操作系统的大量实例,那么您应该考虑容器是否合适。它们可能会为您节省大量的时间和金钱。谢谢Thanks♪(・ω・)ノ !

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

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

相关文章

thymeleaf片段使用_Thymeleaf –片段和angularjs路由器局部视图

thymeleaf片段使用百里香叶许多很酷的功能之一就是能够渲染模板片段–我发现这是与AngularJs一起使用的特别有用的功能。 可以将AngularJS $ routeProvider或AngularUI路由器配置为返回不同“路径”的部分视图,使用百里香叶返回这些部分视图确实效果很好。 考虑一…

经典 Linux 协议栈——网络子系统

目录: 1.Linux网络子系统的分层 2.TCP/IP分层模型 3.Linux 网络协议栈 4.Linux 网卡收包时的中断处理问题 5.Linux 网络启动的准备工作 6.Linux网络包:中断到网络层接收 7.总结 Linux网络子系统的分层 Linux网络子系统实现需要: l …

Java和JavaScript之间的区别

1.简介 我们将在本文中比较Java语言和JavaScript语言。 JavaScript由Netscape开发。 它最初是用于客户端的脚本语言,后来又用作客户端和服务器脚本的语言。 Java由James Gosling由Sun Microsystems开发。 这些天来,JavaScript在服务器中以node.js的形式使…

《汇编语言》王爽实验DOS 环境 Win10 配置

下载这两个软件。 软件链接百度网盘 请输入提取码 提取码: y1j4 1. 将debug.exe放入一个文件夹中,用英文名,不要用中文。 我这里放在E盘下的Debug文件夹。 2 然后安装DOSBox软件。 安装好后在其文件目录下找到DOSBox 0.74-3 Options.bat 打开这个文件&…

硒4 Alpha –期望什么?

硒4 Alpha-期望什么? 早在2018年8月,整个测试自动化社区就受到了一个重大新闻的打击:Selenium的创始成员Simon Stewart在班加罗尔Selenium会议上正式确认了Selenium 4的发布日期和一些重大更新。 世界最受欢迎的Web测试自动化框架的4.0版本计…

8. 字符串转换整数 (atoi) [2022.10.21]

题目链接: 8. 字符串转换整数 (atoi) 一 题意介绍 请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C 中的 atoi 函数)。 函数 myAtoi(string s) 的算法如下: 读入字符串…

26. 删除有序数组中的重复项[2022.10.24]

题目链接力扣 难度:简单 一 题目大意 26. 删除有序数组中的重复项给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。 由于在某…

hibernate jpa_JPA / Hibernate实体状态转换的初学者指南

hibernate jpa介绍 Hibernate将开发人员的思维方式从SQL语句转移到实体状态转换。 一旦由Hibernate主动管理实体,所有更改将自动传播到数据库。 操作域模型实体(及其关联)比编写和维护SQL语句容易得多。 如果没有ORM工具,则添加新…

STL容器----map

一 基本概念 1. map/multimap map/multimap属于关联式容器,底层结构是用二叉树实现。 其中所有元素都是pair, pair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值)&#xff0…

Spring @RequestParam批注

介绍: Spring RequestParam批注可用于在处理程序方法中提取查询参数。 在本快速教程中,我们将学习其用法。 首先让我们展示一个API,该API返回具有给定名字和年龄的用户列表: RestController public class UserController {...Ge…

win10任务栏怎样居中win10任务栏居中设定教程

win11系统内置任务栏居中的设置项,但是win10系统没有,倘若win10顾客也想让自己的任务栏居中的话,应当怎样设置呢?你先撤销任务栏锁住,随后新建菜单栏。之后选定一个空白文件夹,之后任务栏就会发生两条竖杠&…

java与java ee_RxJava + Java8 + Java EE 7 + Arquillian =幸福

java与java ee微服务是一种体系结构样式,其中每个服务都实现为一个独立的系统。 他们可以使用自己的持久性系统(尽管不是强制性的),部署,语言等。 由于系统由一个以上的服务组成,因此每个服务将与其他服务…

【PPT】折线线条怎么画?

大家晚上好~ 今天跟大家分享3种绘制折线线条的方法。在模仿PPT的时候发现没有折线形状,这可怎么好呢? 今天带来了3种快速制作折线线条的方式,让我们一起围观学习吧~ 方法1 形状布尔运算出折线线条 在PPT默认的形状里没有折线,那…

创建通用数组的问题

在这篇文章中,我们将介绍一篇全面的文章,其中介绍了创建通用数组的问题。 Java编程语言于2004年9月在Java 5.0“ Tiger”发行版中添加了泛型。 泛型或类型参数化系统在提供类型安全性的同时扩展了Java现有的类型系统。 1.简介 Java具有Collections Fram…

Citavi阅读PDF文件中目录位置

一般阅读pdf文件,如果文件内内嵌目录数据,可以根据目录,跳转到PDF文件的对应章节。 citavi也不例外 citavi调出目录章节位置如下图所示: 1. 点击左下方的搜索框 2. 点击目录标志 即可调出目录窗口

Ubuntu下命令行解析

Linux命令通常由以下三部分组成:Command [-option] [argument] 其中,命令为程序的名称。选项和参数可以省略 选项中one dash(-)与two dashes(--)区别 使用命令时常看到有时候为选项为-,有时候…

使用JMeter进行性能测试

在开发复杂的高可用性软件项目时,性能至关重要。 在当今这样的现代时代尤其如此,除了闪电般的快速访问实时数据之外,其他任何事情都受到惩罚。 当谈论有时需要的大量数据时,这并不总是一件容易的事。 在本文中,我们将…

Unix系统用户下载内容存放位置

1.Unix文件目录含义 首先注意usr 指 Unix System Resource,而不是User 然后通常: /usr/bin下面的都是系统预装的可执行程序,会随着系统升级而改变。 /usr/local/bin目录是给用户放置自己的可执行程序的地方,推荐放在这里&…

Linux depmod功能说明

Linux depmod 命令用于分析可载入模块的相依性。 depmod(depend module)可检测模块的相依性,供modprobe在安装模块时使用。 Linux modprobe命令用于自动处理可载入模块。 modprobe可载入指定的个别模块,或是载入一组相依的模块。modprobe会根据depmod…

jboss eap_带有自定义模块的JBoss EAP上的骆驼

jboss eapApache Camel —最好的开源集成库 Apache Camel是一个很棒的开放源代码集成库,可以用作ESB的主干或在独立的应用程序中进行系统的路由,转换或中介(请参阅:集成多个系统)。 Camel非常通用,不会迫使…