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

容器和传统虚拟化的区别


一、容器与虚拟机的区别一、容器技术简介
容器首先是一个相对独立的执行环境。从这个意义上来说它有点类似于虚拟机,但又不像虚拟机那么完整。在容器内部,它对外界的影响应该最小化。例如,主机上的所有资源都不能在容器内使用。
2.容器和虚拟机的区别
容器和虚拟机的主要区别在于虚拟化层的位置以及操作系统资源的使用方式。
1
1
容器和虚拟机具有相似的使命:隔离应用程序及其依赖项以创建可以在任何地方运行的独立单元。此外,容器和虚拟机还消除了对物理硬件的需求,使我们能够更有效地利用计算资源,从而提高能源效率和成本效益。
虚拟机将虚拟硬件、内核(即操作系统)和用户空间封装在一个新的虚拟机中。虚拟机可以使用“管理程序”在物理设备上运行。虚拟机依赖于虚拟机管理程序,虚拟机管理程序通常安装在“裸机”系统硬件上,导致虚拟机管理程序在某些方面被视为操作系统。一旦安装了虚拟机管理程序,就可以从系统的可用计算资源中分配虚拟机实例,并且每个虚拟机都获得唯一的操作系统和工作负载(应用程序)。简而言之,虚拟机首先要虚拟出一个物理环境,然后创建一个完整的操作系统,然后创建一个运行应用程序的运行时层。
对于容器环境,不需要安装主机操作系统。容器层(如LXC或libcontainer)直接安装在主机操作系统(通常是Linux变体)上。安装容器层后,您可以从系统可用的计算资源中分配容器实例,并将业务应用程序部署到容器中。但是,每个容器化应用程序将共享相同的操作系统(单个主机操作系统)。容器可以被认为是安装了一组特定应用程序的虚拟机。直接使用主机内核。它比虚拟机具有更少的抽象层、更轻并且启动速度极快。
与虚拟机相比,容器的资源使用效率更高,因为它们不需要为每个应用程序分配单独的操作系统:实例大小更小,创建和迁移速度也更快。快点。很快。这意味着单个操作系统可以承载比虚拟机更多的容器。云提供商对容器技术非常感兴趣,因为可以在相同的硬件设备上部署更多数量的容器实例。此外,容器迁移很容易,但只能迁移到具有兼容操作系统内核的其他服务器,这限制了您的迁移选项。
由于容器不像虚拟机那样封装内核或虚拟硬件,因此每个容器集都有自己独立的用户空间,允许多个容器集运行在同一个主机系统上。我们可以看到,所有操作系统级别的架构都可以在容器之间共享,唯一需要独立构建的就是二进制文件和库。因此,容器具有极其优异的轻量化特性。
接触过Docker的人应该都看过下图。无需进一步解释。Docker对GuestOS进行了分层,因此更轻,性能更高。
docker虚拟机之间的差异
3深层差异:
docker虚拟机之间的差异
更新:Docker现在支持Windows。平台。因此,上面的Windows支持栏可以忽略。


二、“Docker容器技术”与“虚拟化技术”的区别是什么?

DockerContainers是一个开源应用程序引擎,允许开发人员基于可移植的包容器打包他们的应用程序,然后将其分发到任何流行的Linux机器(可以是虚拟的)。

包含互联网沙箱机制,无需任何工具(如iPhone应用程序)。它的性能开销很小,并且可以轻松地跨机器和数据中心遍历。最重要的是,它们不依赖于任何语言、框架或系统。

虚拟化最初被称为资源抽象,是单个物理资源的多重逻辑表示,或者多个物理资源的逻辑表示。虚拟化服务器规范是多个物理资源的单一逻辑表示。虚拟化技术可以增加硬件的容量并简化程序重新配置的过程

。CPU虚拟化技术可以多CPU并行模拟单CPU,允许平台同时运行多个操作系统,并且应用程序在不同空间运行并相互交互,从而提高计算机工作效率。


三、docker容器与虚拟机有什么区别?

Docker具有紧凑、快速迁移部署、运行高效的特点,但其隔离性比服务器虚拟化差:不同的容器属于不同的运单(Docker上运行的不同应用实例)并且一个彼此独立(孤独))。但它是由同一个仓库管理器(宿主操作系统内核)管理的,所以仓库管理器可以看到所有容器的相关信息(因为操作系统内核是共享的,所以相关信息也会共享)。服务器虚拟化就像在码头(物理主机和虚拟化层)上安装了几个独立的“小码头”——仓库(虚拟机)。它具有完全独立(分离)的空间,属于不同的客户端(虚拟机所有者)。每个仓库都有自己的仓库管理器(当前虚拟机的操作系统内核),无法管理其他仓库。有共享任何信息。因此,我们需要根据不同的应用场景和需求,以不同的方式使用Docker技术或者使用服务器虚拟化技术。例如,一个典型的Docker应用场景是当主机上的Docker实例属于单个用户时,这样可以在保证安全性的同时充分发挥Docker的技术优势。