容器与虚拟机 (VM):有什么区别?

起重机吊装集装箱

了解容器与虚拟机之争的所有必要信息,以及为什么容器越来越受欢迎。

如果您最近才开始了解虚拟化,您可能想知道容器与虚拟机 (VM) 在虚拟化技术中的区别。

容器已成为云原生开发中的主导力量,因此理解它们是什么以及它们不是什么非常重要。虽然容器和虚拟机 (VM) 各自具有独特的特性,但它们也有相似之处:都能提升 IT 效率、提供应用程序的可移植性,并增强 DevOps 和软件开发生命周期。

虚拟化如何工作

虚拟化是一个使用软件在计算机硬件上创建抽象层的过程,该抽象层允许将一台计算机的硬件元素分成多台虚拟计算机。

所使用的软件称为虚拟机管理程序,它是一个小型层,使多个操作系统能够并行运行,共享相同的物理计算资源。在物理计算机或服务器(亦称裸机服务器)上使用虚拟机监控程序时,数据中心内的物理计算机能够将其操作系统和应用程序与硬件分离。然后,它可以将自己分成几个独立的“虚拟机”。

观看视频,深入了解虚拟化技术:

什么是 Virtual Machines?

虚拟机 (VM) 是一种用于构建虚拟化计算环境的技术。它们已经存在相当长时间,被认为是第一代云计算的基础。

简单来说,虚拟机是对物理计算机的模拟。虚拟机使团队能够在单台计算机上运行看似多台机器和多个操作系统。虚拟机通过称为虚拟机管理程序的轻量级软件层与物理计算机交互。虚拟机管理程序可以将虚拟机彼此隔离,并在它们之间分配处理器、内存和存储资源。

虚拟机也被称为虚拟服务器、虚拟服务器实例和虚拟专用服务器。

什么是容器?

容器是一种更轻量级、更敏捷的虚拟化处理方式,由于不使用虚拟机管理程序,因此您可以更快地调配资源,并让新应用程序更快速上市。

容器化不是启动一整台虚拟机,而是将运行单个应用程序或微服务所需的所有内容打包在一起(包括它们运行所需的运行时库)。容器包含所有代码、依赖项,甚至操作系统本身。这使得应用程序几乎可以在任何地方运行,无论是桌面计算机、传统 IT 基础设施还是云环境。

容器使用一种操作系统 (OS) 虚拟化形式。简单来说,它们利用主机操作系统的功能来隔离进程,并控制这些进程对 CPU、内存和磁盘空间的访问。

容器已经存在数十年。然而,普遍的共识是,现代容器时代始于 2013 年 Docker 的推出,这是一个用于构建、部署和管理容器化应用的开源平台。可以了解更多关于 Docker、Docker 容器、Dockerfile(容器镜像的构建文件)以及过去十年容器技术生态的发展情况。

容器与虚拟机:有何区别?

在传统虚拟化中,虚拟机管理程序对物理硬件进行虚拟化。其结果是,每个虚拟机都包含一个客户操作系统、操作系统运行所需的硬件虚拟副本,以及应用程序及其相关的库和依赖项。不同操作系统的虚拟机可以在同一台物理服务器上运行。例如,VMware 虚拟机可以与 Linux 虚拟机并行运行,而 Linux 虚拟机又可以与 Microsoft 虚拟机并行运行,依此类推。

容器虚拟化操作系统(通常是 Linux 或 Windows),而不是虚拟化底层硬件,因此,每个单独的容器包含应用程序及其库和依赖项。容器较小、快速且可移植,因为与虚拟机不同,容器不需要在每个实例中包含访客操作系统,而是可以直接使用主机操作系统的功能和资源。

就像虚拟机一样,容器允许开发人员提高物理机的 CPU 和内存利用率。然而,容器甚至更进一步,因为它们还支持微服务架构,可以更精细地部署和扩展应用程序组件。由于单个组件难以承受其负载,因此这是扩展整个单体应用程序的一个具有吸引力的替代选项。

跟随 Nigel Brown 一起深入了解容器与虚拟机 (VM) 有何不同:

为什么选择容器?

尽管使用虚拟机的理由还有很多,但容器提供的灵活性和可移植性非常适合多云世界。开发人员创建新应用程序时,可能不知道需要部署的所有位置。

今天,一个组织可能会在其私有云上运行应用程序,但明天,该组织便可能需要将应用程序部署到其他提供商的公有云中。将应用程序容器化可为团队提供处理现代 IT 的众多软件环境所需的灵活性。

容器也非常适合用于持续集成持续部署 (CI/CD) 的自动化和 DevOps 管道实现。

管理多云容器

尽管容器有许多优势,并且在众多用例中是最佳选择,但它们也存在一些自身的挑战。

大型企业应用可能包含大量容器,而容器管理对团队来说会带来一些重大问题。如何对正在运行的容器及其所在位置保持可视性?如何处理关键问题,如安全性和合规性?如何持续、一致地管理应用程序?

大多数企业正在转向开源解决方案,例如 Kubernetes,而 Kubernetes 已经在许多组织的大多数情况下运行容器。

采取后续步骤

使用 IBM 的容器解决方案实现基础架构现代化。通过使用 IBM 的综合容器平台,跨环境灵活、安全、高效地运行、扩展和管理容器化工作负载。

深入了解容器解决方案 创建免费 IBM Cloud 帐户