物理机、虚拟机、容器的区别是什么?
物理机
物理机,对应采购的服务器设备,又叫裸设备,bare metal,随着摩尔定律的增长,单个服务器的性能逐渐提升,物理服务器的性能是如此的高,以致于我们实际使用到的物理机的性能只占了百分之几甚至更低,为了灵活的部署系统和应用,需要一层虚拟层
在物理机之上,这就是虚拟机。
注意:物理机就是普通的主机。笔记本电脑,台式电脑都可以叫物理机。
虚拟机
虚拟机,与现在流行的“云计算”的概念的有着紧密联系,虚拟机的概念在IaaS层,即基础设施即服务部分,可以自行学习一下。为了让全人类能够像使用自来水、电一样使用计算资源,我们需要在几百上千台物理机上部署虚拟化软件,如vmware等等,使得
他们的表现就像一台巨大的计算机。同时它还具有灵活性和解耦性,你可以在一台物理机上部署10台虚拟机,使得一台物理机的表现就像10台性能略差的服务器,当你不需要他们时,你又可以随时的回收资源重新分配。
注意:虚拟机是建在物理机上的。相当于你有了几个电脑
容器
容器,也是虚拟层的概念,相对虚拟机而言,容器更加轻量级。虚拟机中需要模拟一台物理机的所有资源,比如你要模拟出有多少CPU、网卡、显卡等等,这些都是在软件层面通过计算资源实现的,这就给物理机凭空增加了不必要的计算量。容器仅仅在操
作系统层面向上,对应用的所需各类资源进行了隔离。这也是为何微服务、PaaS和Docker最近如此火爆的原因,资源消耗少,迁移部署简单,成本低。尤其是CNCF提供的一系列工具,更是把容器技术推动到了浪潮之巅。
other
你去京东或者淘宝上,买CPU、显卡啊,硬盘啊,组装起来,开机装上Windows也好,Linux也好。
这就是一台物理机,硬件>你使用的系统。
然后,假设你装的Windows,你需要一台Linux来跑你的代码也好,学习也好,你需要安装一个虚拟化工具(如Windows自带的HV或者vmware),这样你就能启动一个Linux起来。
硬件>windows>linux,Linux就是虚拟机。
然后就到容器,这里就需要更加深一层的知识。从上面的架构来看,Windows就是hostOS,linux属于GuestOS,而容器则是取代了本来属于GuestOS的位置(既上图中的Linux)。
那么虚拟化工具就从vmware变成docker。虚拟机和容器的区别,最重要就是在损耗上面,容器管理一般不建议把一些不必要的功能放进去,所以容器启动的时候,基本是保持,一个应用启动一个容器,这样启动速度和消耗都会很小。
但是虚拟机则会把很多服务附带进去。所以启动速度和损耗都比较大一点
原文地址:https://www.cnblogs.com/kunmomo/p/15186512.html
- 浏览器 HTTP 协议缓存机制详解
- 详解 Windows 下 Eclipse CDT 配置 C/C++ 编译环境
- 硬核乘法器的Verilog HDL 调用
- Web 自动化测试与智能爬虫利器:PhantomJS 简介与实战
- 浅谈 Scala 中下划线的用途
- Java 多线程之 Runnable VS Thread 及其资源共享问题
- 块RAM的Verilog HDL调用
- 玩转千位分隔符输出
- DCM 模块的Verilog HDL 调用
- Python RPC 远程调用脚本之 RPyC 实践
- CRC16 编码器的Verilog HDL 实现
- macOS 0-day漏洞详情披露,可被利用完全接管系统
- SPI 接口协议的Verilog HDL 实现
- 玩转 Nginx 之:使用 Lua 扩展 Nginx 功能
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 用PHP的反射实现委托模式的讲解
- PHP时间函数使用详解
- python批量处理多DNS多域名的nslookup解析实现
- PHP单例模式数据库连接类与页面静态化实现方法
- pytorch 常用函数 max ,eq说明
- 解析python 中/ 和 % 和 //(地板除)
- python右对齐的实例方法
- PHP的PDO预处理语句与存储过程
- PHP工厂模式的日常使用
- 使用ucenter实现多站点同步登录的讲解
- 实例讲解PHP验证邮箱是否合格
- PHP的mysqli_ssl_set()函数讲解
- 针对PHP开发安全问题的相关总结
- 实例分析PHP将字符串转换成数字的方法
- Laravel5.4框架使用socialite实现github登录的方法