Hyper - 基于Hypervisor的Docker引擎


Apache
Linux
Google Go

软件简介

Hyper 是一种 App-Centric 的虚拟化技术,我们完全摒弃了传统虚机上必须和物理机一样,运行一个完整 OS
这种看似显然的假设,我们让Docker Image 直接运行在 Hypervisor 上。我们让一组容器直接启动在
hypervisor 上的时间达到 350 毫秒,并且还在进一步优化。而且所有这些,都是“开箱即得的”。

当然有人会问,有了容器为什么还要虚机。诚然,虚机并不是所有人都需要的,但是,虚机天然具备更好的隔离性;虚拟机也仍然存在于很多企业应用的协议栈中,这样一个依赖更少、开箱即得,而且还带有
Pod、persist mode 等附加丰富特性的应用,是不少场景中都需要的。而我们最期待的,就是去引爆新的容器服务 —— CaaS。

传统虚拟机的问题其实在于过于刻意模仿物理机,刻意要承载完整操作系统,启动一台虚拟机要若干秒,甚至几分钟,Image
有若干GB,加载传播都很慢,但其实根本没有这个必要,Hyper希望兼取两者的强项

Hyper 在启动方面开销很低,即使很入门的机器,也可以有很好的性能,比如在一个小盒子上,里面跑的是超低电压的 i3
CPU,启动所用的时延只有不到500ms——

而且 Hyper 的命令行用法和 Docker 很相似,简单到一个 run 命令就可以启动一个 docker image

Hyper 的实现架构是这样的

在虚机上,引导起 kernel 之后,用 init 进程直接启动 Docker Image,没有完整OS。所有的 image
的处理,在虚拟机外面准备好,插入虚拟机运行。

此外,有时,你需要 link 几个密切关联的 docker,这样的时候,hyper 允许你把它们放在一个虚机里面,通过mount
namespace隔离文件系统,这称为 pod,这个概念来自于 kubernetes。

Via:DockerOne