type
status
date
slug
summary
tags
category
icon
password

1. 架构层级

  • Docker
    • 基于容器的虚拟化。
    • 运行在宿主操作系统(Host OS)之上,共享宿主操作系统的内核。
    • 容器包含应用程序及其依赖,但不包括操作系统内核。
  • 虚拟机
    • 基于硬件的虚拟化。
    • 运行在虚拟化管理程序(Hypervisor)之上,Hypervisor可以是Type 1(裸机Hypervisor,如VMware ESXi)或Type 2(宿主机Hypervisor,如VirtualBox)。
    • 每个虚拟机包含完整的操作系统,包括内核和应用程序。

2. 资源占用

  • Docker
    • 容器共享宿主操作系统内核,启动和运行速度较快。
    • 占用较少的资源,因为不需要额外的操作系统开销。
  • 虚拟机
    • 每个虚拟机运行一个完整的操作系统,启动时间较长。
    • 资源开销大,每个虚拟机需要独立的操作系统资源。

3. 启动速度

  • Docker
    • 启动速度非常快,通常在几秒钟内完成。
  • 虚拟机
    • 启动速度较慢,通常需要几分钟,因为需要启动一个完整的操作系统。

4. 隔离性

  • Docker
    • 容器之间以及容器与宿主操作系统之间的隔离相对较弱。
    • 依赖于操作系统级别的隔离(如cgroups和namespaces)。
  • 虚拟机
    • 隔离性强,每个虚拟机运行在独立的操作系统中。
    • 提供硬件级别的隔离,安全性更高。

5. 可移植性

  • Docker
    • 容器镜像在不同的环境中具有高度的可移植性。
    • 适用于微服务架构和持续集成/持续部署(CI/CD)流程。
  • 虚拟机
    • 虚拟机镜像也具有一定的可移植性,但由于包含完整的操作系统,体积较大,移动和复制起来比较麻烦。

6. 适用场景

  • Docker
    • 适用于需要快速启动、快速扩展和高度可移植的场景。
    • 常用于开发、测试、CI/CD以及微服务架构。
  • 虚拟机
    • 适用于需要强隔离、安全性要求高、需要运行不同操作系统的场景。
    • 常用于传统的企业应用部署、大型分布式系统以及需要多种操作系统环境的开发和测试。
 
notion image
Git是什么虚拟化技术 — KVM网络配置
  • Twikoo