将容器与虚拟机进行比较

已完成

借助硬件虚拟化,可以在同一物理硬件上同时运行多个独立的操作系统实例。 容器代表计算资源虚拟化的下一个阶段。

基于容器的虚拟化使你能够将操作系统虚拟化。 通过这种方法,你可以在同一个操作系统实例中运行多个应用程序,同时保持应用程序之间的隔离。 虚拟机中的容器提供的功能类似于物理服务器中虚拟机的功能。

有关容器与虚拟机的注意事项

为了更好地了解基于容器的虚拟化,我们来比较一下容器和虚拟机。

比较 容器 虚拟机
隔离 容器通常提供与主机和其他容器的轻度隔离,但容器不像虚拟机那样提供强大的安全边界。 虚拟机提供与主机操作系统和其他虚拟机的完全隔离。 当强大的安全边界至关重要时(例如,在相同服务器或群集上托管来自竞争公司的应用),这种分离非常有用。
操作系统 容器运行操作系统的用户模式部分,可以对其进行定制,使之只包含应用所需的服务。 此方法可帮助你使用更少的系统资源。 虚拟机运行包含内核的完整操作系统,这需要更多的系统资源(CPU、内存和存储)。
部署 可以通过命令行使用 Docker 部署单个容器。 可以使用 Azure Kubernetes 服务等业务流程协调程序部署多个容器。 可以使用 Windows Admin Center 或 Hyper-V 管理器部署单个虚拟机。 可以使用 PowerShell 或 System Center Virtual Machine Manager 部署多个虚拟机。
永久性存储 容器使用 Azure 磁盘作为单个节点的本地存储,或将 Azure 文件存储(SMB 共享)用于由多个节点或服务器共享的存储。 虚拟机将虚拟硬盘 (VHD) 用于单个计算机的本地存储,或将 SMB 文件共享用于多个服务器共享的存储。
容错 如果某个群集节点发生故障,另一个群集节点上的业务流程协调程序会快速重新创建在该节点上运行的任何容器。 虚拟机可以故障转移到群集中的另一台服务器,而虚拟机的操作系统将在新服务器上重启。

使用容器时的注意事项

与物理机和虚拟机相比,容器具有多项优点。 查看以下优势,并考虑如何为公司的内部应用实现容器。

  • 考虑灵活性和速度。 在开发和共享容器化应用程序代码时,获得更高的灵活性和速度。

  • 考虑测试。 为配置选择容器,以便简化应用测试。

  • 考虑应用部署。 实现容器,以便简化和加速应用部署。

  • 考虑工作负载密度。 支持更高的工作负载密度,并通过使用容器来提高资源利用率。

了解容器映像

所有容器都从容器映像创建。 容器映像是一个轻量级、独立的可执行软件包,它封装了运行应用程序所需的所有内容。 它包括以下组件:

  • 代码:应用程序的源代码。
  • 运行时:执行应用程序所需的环境。
  • 系统工具:应用程序正常运行所需的实用工具。
  • 系统库:应用程序使用的共享库。
  • 设置:特定于应用程序的配置参数。

创建容器映像时,它将成为可跨不同计算环境以一致方式运行的可移植单元。 这些映像是容器的构建基块,容器是在运行时运行的这些映像的实例。