当前位置:首页 > 虚拟化 > 正文

主机虚拟化与容器虚拟化的区别


一、容器和虚拟机的区别容器和虚拟机的区别:
容器:在程序级别创建在操作系统上,容器安装在操作系统上,共享操作系统,直接使用操作系统内核。
虚拟机:在操作系统、操作系统级别上创建,具有独特的操作系统和负载,并且依赖于hypervisor。
容器:快速创建/部署应用程序、小型实例、更轻松的映像创建和大型集群。
虚拟机:创建过程比较复杂,需要创建操作系统和应用程序。大型实例和小型集群大小。
容器:持续开发、集成和部署,提供频繁可靠的容器镜像构建/部署,支持快速简单的恢复
虚拟机:支持持续开发、集成和部署,但是,部署复杂,自动化程度比较低,快照恢复支持复杂。
容器:开发和运维解耦,在构建或发布阶段创建容器镜像,实现应用和基础设施的解耦。
虚拟机:支持多段构建,对镜要求高,流程耦合能力高。
容器:开发、测试、生产环境的一致性,本地或外部运行的一致性。
虚拟机:自定义镜像,实现环境一致性
容器:云平台或其他操作系统,可用于Ubuntu、RHEL、CoreOS、on-premises、GoogleContainerEngine或任何其他操作系统系统运行环境。
虚拟机:可以在大多数操作系统上运行。
容器:监控水平低,缺乏完整的监控平台。
虚拟机:监控水平高,很多监控系统都比较完善。
容器:松耦合、分布式、动态可扩展、基于微服务,将应用程序划分为更小的、独立的组件,可以灵活部署和管理。
虚拟机:分布式、动态可扩展、基于基础设施、大型应用程序、支持高度复杂的优化、独立组件、部署和管理动态逻辑。
容器:现在安全性一般,软件隔离,资源隔离,资源利用效率更高。
虚拟机:安全性高、硬件隔离、资源隔离,资源效率比容器低,性能依赖于硬件驱动的虚拟化技术。
二、docker容器与虚拟机有什么区别?1、启动速度可变
Docker在二级启动很快。虚拟机通常需要几分钟才能启动。
2.各种性能损失
Docker在操作系统层面进行虚拟化,性能损失非常小。通过虚拟机管理程序层和内核层实现虚拟化的性能。
3.系统利用率各不相同
Docker的架构允许共享内核和共享应用程序库,因此占用的内存非常少。在相同的硬件环境下,Docker运行的镜像比虚拟机多得多,并且提供非常高的系统利用率。
4.各种隔离属性
与虚拟机相比,Docker的隔离性较弱。Docker属于进程间隔离,虚拟机可以实现系统级隔离。
5.安全性不同
Docker的安全性也很弱。Docker的租户根与主机根相同。当容器中的用户从普通用户权限升级为root权限时,他或她就拥有主机的直接root权限,可以执行无限制的操作。虚拟机租户的root权限与主机的root虚拟机权限分离,虚拟机采用ring-1硬件隔离技术,如Intel的VT-d、VT-x。它们闯入、相互交互,而容器尚不具有任何形式的硬件隔离,这使得它们容易受到攻击。
6.多功能的可管理性
Docker的集中管理工具还不成熟。各种虚拟化技术都有成熟的管理工具。例如,VMwarevCenter提供了完整的虚拟机管理功能。
7.可用性和可恢复性是不同的。
Docker对您业务的高可用性支持是通过快速重新部署实现的。虚拟化拥有经过生产环境考验的负载均衡、高可用、容错、迁移、数据保护等成熟的保障机制,可以保证虚拟机99.999%的高可用,保证业务连续性。
8.创建和删除速度不同
虚拟化创建只需几分钟,而Docker容器创建需要几秒钟。Docker的快速迭代决定了你能否开发、测试、部署。节省大量时间。
9.交付速度和部署速度不同
虽然虚拟机可以通过镜像实现环境交付的一致性,但镜像部署无法系统地记录Dockerfile过程中的容器配置。这样可以实现快速部署以及跨集群的快速部署。


一、容器和虚拟机的区别

与虚拟机相比,容器具有更大的使用效率,因为它们不需要为每个应用程序提供单独的操作系统——实例体积更小,创建和迁移的速度更快。这意味着单个操作系统可以承载比虚拟机更多的容器。

容器中的应用进程直接运行在主机内核上。容器没有自己的内核,也不是虚拟化工具。

容器可以是安装了特定应用程序的虚拟机。他直接使用受害者的核心等等。云容器具有更高的资源利用效率,这是虚拟机所独有的。

容器完美地使用了沙箱机制,相互之间没有接口(类似于iPhone应用程序)。几乎没有性能开销,可以轻松地在机器和数据中心上运行。最主要的是它们不依赖于任何语言、框架或系统。

相比虚拟机,笔者的隔离性要弱一些。Docker是进程之间的隔离,虚拟机可以实现系统级的隔离。安全性:Docker的安全性更弱。

马上就要开始了。容器中的应用程序直接是底层账户的进程,而不是虚拟机内部的进程。因此,从容器启动就相当于在本地机器上处理,而不是启动操作系统,速度要快得多。