容器提供许多与虚拟机相同的益处,如安全、存储和网络隔离等。
这两种技术都将其应用库和运行时资源与主机操作系统或虚拟机监控程序隔离开,反之亦然。
容器和虚拟机在与硬件和底层操作系统交互的方式上有所不同。
虚拟化
- 使多个操作系统能够同时在一个硬件平台上运行。
- 使用虚拟机监控程序将硬件分为多个虚拟硬件系统,从而允许多个操作系统并行运行。
- 需要一个完整的操作系统环境来支持该应用。
将这一点与容器进行比较和对比,容器:
- 直接在操作系统上运行,从而跨系统上的所有容器共享硬件和操作系统资源。这使得应用能够保持轻巧,并快速并行运行。
- 共享相同的操作系统内核,将容器化应用进程与系统的其余进程隔离开,并使用与该内核兼容的软件。
- 需要的硬件资源比虚拟机少的多,这也使其能够快速启动和停止并降低存储要求。