容器是虚拟化技术,虚拟化技术分为主机级虚拟化和容器级虚拟化。容器和虚拟机之间的主要区别是虚拟化层的位置和操作系统资源的使用方式。

它已经成为系统管理员按需共享资源的一种广泛接受的方式。因为hypervisor虚拟化技术仍然存在一些性能和资源效率问题,所以出现了一种名为container的新虚拟化技术来帮助解决这些问题。

容器和虚拟机有一个类似的任务:隔离应用程序及其关联,从而构建一组可以在任何地方运行的自包含单元。此外,容器和虚拟机还不需要物理硬件,允许我们更有效地使用计算资源,从而提高能源效率和成本效益。

Virtual opportunity将虚拟硬件、内核(即操作系统)和用户空间打包到一个新的虚拟机中。虚拟机可以通过“虚拟机管理器”在物理设备上运行。虚拟机依赖于hypervisor,而hypervisor通常安装在“裸机”系统硬件上,这使得hypervisor在某些方面被视为操作系统。一旦安装了虚拟机监控程序,就可以从系统的可用计算资源中分配虚拟机实例,并且每个虚拟机都可以获得唯一的操作系统和负载(应用程序)。简而言之,虚拟机需要首先虚拟化物理环境,然后构建完整的操作系统,然后构建运行时层,然后提供要运行的程序。

804a87d3fc7f9409f07432525ed702e7.png

对于容器环境,不需要安装主机操作系统,而是直接在主机操作系统(通常是Linux变体)上安装容器层(如LxC或libcontainer)。安装容器层之后,可以从系统的可用计算资源中分配容器实例,企业应用程序可以部署在容器中。但是,每个容器化的应用程序将共享相同的操作系统(单个主机操作系统)。容器可以看作是安装了一组特定应用程序的虚拟机,它直接使用主机的内核。抽象层小于虚拟机。它更轻,启动更快。

与虚拟机相比,容器具有更高的资源效率,因为它不需要为每个应用程序分配单独的操作系统——更小的实例大小、更快的创建和迁移。这意味着一个操作系统可以承载比一个虚拟机更多的容器。云提供商非常热衷于容器技术,因为在同一硬件设备中可以部署更多的容器实例。此外,容器很容易迁移,但是它们只能迁移到具有兼容操作系统内核的其他服务器上,这限制了迁移选项。

因为容器不像虚拟机那样打包内核或虚拟硬件,所以每个容器都有自己独立的用户空间,这使得多个容器可以在同一个主机系统上运行。我们可以看到,所有操作系统级别的架构都可以在容器之间共享。唯一需要独立构建的是二进制文件和库。因此,容器具有优良的轻量级特性。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐