logo
Reliability & Operations

VMs and Containers

VM 与 container 对比

在讨论 virtualization vs containerization 前,先明确 VM 与 container 是什么。

Virtual Machines (VM)

Virtual Machine (VM) 是一个虚拟计算环境,具备自己的 CPU、memory、network interface 和 storage,运行在物理硬件上。Hypervisor 负责隔离硬件资源,并按需分配给 VM。

VM 与宿主系统隔离,一台物理服务器上可以运行多个 VM,并可在 host 之间迁移以适配资源与负载。

什么是 Hypervisor?

Hypervisor(也叫 Virtual Machine Monitor)隔离 OS 与 VM,并管理 VM 的创建与运行。它把 CPU、memory、storage 等当成资源池,在不同 VM 之间分配。

为什么使用 VM?

  • Server consolidation:提升硬件利用率,避免新增物理资源
  • 隔离性强:VM 内运行的应用不会影响 host
  • 适合测试与生产隔离:可以单独运行特定用途的 VM

Containers

Container 是一种标准化的软件单元,把代码与其依赖(runtime、library 版本等)打包在一起,使应用能在不同环境中一致运行。

为什么需要 containers?

Separation of responsibility

开发关注应用逻辑与依赖,运维专注部署与管理。

Workload portability

可在几乎任何环境运行,开发与部署更顺畅。

Application isolation

在 OS 层面隔离 CPU、memory、storage、network 资源。

Agile development

避免环境与依赖问题,加速开发节奏。

Efficient operations

轻量、资源占用小。

Virtualization vs Containerization

virtualization-vs-containerization

传统 virtualization 由 hypervisor 虚拟硬件,每个 VM 包含 guest OS、虚拟硬件、应用与依赖。

Containerization 则虚拟 OS,让每个 container 只包含应用与依赖。多个 containers 共享 OS kernel,资源占用远低于 VM。

相关练习题

VMs and Containers

暂无相关练习题