在 macOS 上运行 Linux 系统有两种方式:(1) 使用商业虚拟机软件 (如 Parallels Desktop) ; (2) 使用 Docker 虚拟化技术。哪种方式在性能、内存、I/O 上更优呢?
我们知道,Docker 在 Linux 上利用了 Linux 原生支持的容器方式实现资源和环境的隔离,直接利用宿主内核,性能接近原生。然而,在 macOS 上却仍然需要虚拟化的技术。早期的 Docker 干脆直接在开源的 VirtualBox 中构建虚拟机,性能低下。后期的 Docker 基于轻量化的虚拟化框架 HyperKit 开发,该框架又是 macOS 10.10 后 Apple 官方发布的 Hypervisor.framework 二次开发,据说性能得到很大提升。
作为商业化虚拟机的佼佼者的 Parallels Desktop,提出了自己的 Parallels Hypervisor。因此,Docker 和 Parallels Desktop 在虚拟化技术上谁更胜一筹呢?或者说,开源和商业化闭源的虚拟化技术谁更强?通过一番测试,我的结论是 Parallels Desktop 完全吊打 Docker 。