Hyper基于 Hypervisor 的 Docker 引擎
Hyper 是一種 App-Centric 的虛擬化技術(shù),我們完全摒棄了傳統(tǒng)虛機(jī)上必須和物理機(jī)一樣,運(yùn)行一個(gè)完整 OS 這種看似顯然的假設(shè),我們讓Docker Image 直接運(yùn)行在 Hypervisor 上。我們讓一組容器直接啟動(dòng)在 hypervisor 上的時(shí)間達(dá)到 350 毫秒,并且還在進(jìn)一步優(yōu)化。而且所有這些,都是“開箱即得的”。
當(dāng)然有人會(huì)問,有了容器為什么還要虛機(jī)。誠然,虛機(jī)并不是所有人都需要的,但是,虛機(jī)天然具備更好的隔離性;虛擬機(jī)也仍然存在于很多企業(yè)應(yīng)用的協(xié)議棧中,這樣一個(gè)依賴更少、開箱即得,而且還帶有 Pod、persist mode 等附加豐富特性的應(yīng)用,是不少場景中都需要的。而我們最期待的,就是去引爆新的容器服務(wù) —— CaaS。
傳統(tǒng)虛擬機(jī)的問題其實(shí)在于過于刻意模仿物理機(jī),刻意要承載完整操作系統(tǒng),啟動(dòng)一臺(tái)虛擬機(jī)要若干秒,甚至幾分鐘,Image 有若干GB,加載傳播都很慢,但其實(shí)根本沒有這個(gè)必要,Hyper希望兼取兩者的強(qiáng)項(xiàng)
Hyper 在啟動(dòng)方面開銷很低,即使很入門的機(jī)器,也可以有很好的性能,比如在一個(gè)小盒子上,里面跑的是超低電壓的 i3 CPU,啟動(dòng)所用的時(shí)延只有不到500ms——
而且 Hyper 的命令行用法和 Docker 很相似,簡單到一個(gè) run 命令就可以啟動(dòng)一個(gè) docker image
Hyper 的實(shí)現(xiàn)架構(gòu)是這樣的
在虛機(jī)上,引導(dǎo)起 kernel 之后,用 init 進(jìn)程直接啟動(dòng) Docker Image,沒有完整OS。所有的 image 的處理,在虛擬機(jī)外面準(zhǔn)備好,插入虛擬機(jī)運(yùn)行。
此外,有時(shí),你需要 link 幾個(gè)密切關(guān)聯(lián)的 docker,這樣的時(shí)候,hyper 允許你把它們放在一個(gè)虛機(jī)里面,通過mount namespace隔離文件系統(tǒng),這稱為 pod,這個(gè)概念來自于 kubernetes。
Via:DockerOne
