容器技术和虚拟化技术的区别,主要体现在以下三个方面:1.运作思维不同;2.性能不同;3.执行条件不同;3.开启速度不同;4.安全性不同;5.安全性不同。容器技术是“轻量级”的虚拟化技术,具有占用资源少、体积小、开启运行速度快等特点。
1.运作思维不同
容器技术和虚拟化技术,虽然都属于虚拟化的技术,目标都是为了将一套应用程序所需的执行环境打包起来,建立一个孤立环境,方便在不同的硬件中移动,但两者的运作思维截然不同。简单来说,传统虚拟化技术如vSphere或Hyper-V是以操作系统为中心,而容器技术则是一种以应用程序为中心的虚拟化技术。
2.性能不同
容器技术共享宿主机内核,系统级虚拟化,占用资源少,没有Hypervisor层开销,性能基本接近物理机。
虚拟机需要Hypervisor层支持,虚拟化一些设备,具有完整的GuestOS,需要申请大量的资源,虚拟化开销大,因而降低性能,没有容器性能好。
3.执行条件不同
虚拟机需要安装操作系统(安装Guest OS)才能执行应用程序,而容器环境内不需要安装操作系统就能执行应用程序。
容器技术不是在OS外来建立虚拟环境,而是在OS内的核心系统层来打造虚拟执行环境,透过共享Host OS的作法,取代一个一个Guest OS的功用。也正因为如此,容器技术被称为是OS层的虚拟化技术。
4.开启速度不同
容器里面的应用,直接就是底层系统的一个进程,而不是虚拟机内部的进程。所以,启动容器相当于启动本机的一个进程,而不是启动一个操作系统,速度就快很多。通常不用1分钟或几秒钟就可以启用,远比需要数分钟甚至数十分钟才能开启的传统虚拟机来的快。
5.安全性不同
Docker容器由于共享宿主机内核,只是进程级隔离,因此隔离性和稳定性不如虚拟机,Docker容器具有一定权限访问宿主机内核,存在一定安全隐患。
延伸阅读
容器与虚拟机(VM)安全性
虚拟机之间与它们的主机之间具有很强的隔离性。由于它们不共享任何资源,因此破坏一个VM (虚拟机)并不能帮助您获得对其他VM 的访问权限。例如,如果攻击者成功破坏了VM 并尝试了拒绝服务(DOS) 攻击,则管理程序会限制受感染系统可以拥有的资源,因此攻击不会禁用主机系统或伤害其他VM。
也就是说,VM 运行整个操作系统,因此它具有与实际系统相同的攻击面。您需要像保护任何其他系统一样保护您的虚拟机。通常,保护VM 的名列前茅步是关闭或删除任何不需要的东西。
容器只运行一个应用程序。所以理论上,它们的攻击面比虚拟机要小。如果一个容器存在漏洞,它很可能存在于其中运行的应用程序中,如果它在VM 或实际系统中运行,那么该漏洞就会存在。
但是容器共享一个底层操作系统。它们通过内核而不是管理程序相互隔离。使用Docker,它们被Linux 内核隔离,而Linux 内核过去也存在漏洞。Docker 也存在漏洞,例如Doki 恶意软件利用Linux 内核缺陷来定位容器。
如果攻击者破坏了一个容器,他们仍然比在类似情况下影响虚拟机更有可能影响其他容器。要重用上面的示例,他们可以发起可能损害底层操作系统或其他容器的DOS 攻击。
总体而言,两种虚拟化技术都享有大致相同的安全级别。它们是非常不同的工具,您需要采取的预防措施取决于工具以及您打算如何使用它。
50万+团队都在用的项目协作工具一个工具满足团队所需:任务、项目、文档、IM、目标、 日历、甘特图、工时、审批以及更多,让工作更简单智能化研发管理工具PingCode 是简单易用的新一代研发管理平台,让研发管理自动化、数据化、智能化,帮助企业提升研发效能