物理机
物理机,对应采购的服务器设备,又叫裸设备,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。虚拟机和容器的区别,最重要就是在损耗上面,容器管理一般不建议把一些不必要的功能放进去,所以容器启动的时候,基本是保持,一个应用启动一个容器,这样启动速度和消耗都会很小。
但是虚拟机则会把很多服务附带进去。所以启动速度和损耗都比较大一点
总结
一台电脑是物理机,然后在物理机上通过虚拟软件装虚拟机,每个电脑可以装多个虚拟机,只要内存够,登陆虚拟机进去,又类似一台电脑,每个虚拟机可以安装不同的操作系统,容器也是建立在物理机上的,物理机和容器可以一对多,也可以一对一,容器和虚拟机作用是一样的,只不过容器比虚拟机更加轻量级
参考