天天看點

Docker開源元件:HyperKit、VPNKit和DataKit介紹

本文講的是<b>Docker開源元件:HyperKit、VPNKit和DataKit介紹</b>,【編者的話】Anil Madhavapeddy是Docker的技術大拿,也在Cambridge University計算機實驗室任教。Anil是Xen Hypervisor最初開發者,現在正在做unikernel方面工作。Anil曾經在NetApp、XenSource、Citrix、Intel和NASA工作過。他是開源OpenBSD作業系統最活躍貢獻者。

Docker完全基于開源基金會(Solomon Hykes在OSCON 2016做了主題演講,介紹了Docker與開源之間的發展史),今天,我們将支援Mac和Windows桌面應用的Docker核心技術也貢獻給了開源社群。

Mac和Windows版本的Docker技術包括硬體虛拟化,嵌入式作業系統和unikernel技術,使用者之前并未有這種體驗。我們來仔細研究一下源碼是怎麼工作的,這樣使用者可以更好将其用于自己的項目或者貢獻自己的代碼。

<a href="http://dockerone.com/uploads/article/20160522/e3fd8a4c154d594b51677b96fc4676fc.png" target="_blank"></a>

今天,我們很高興釋出這些開源元件,我們将它們應用到Mac和Windows下的Docker,這些新元件包括:

為了開發Mac和Windows下Docker,每個元件包可以單獨使用也可以組合使用。這隻是開始:随後我們還會開發其他成熟元件(例如:檔案系統架構),其中一些元件包括:HyperKit、DataKit和VPNKit。

<a href="http://dockerone.com/uploads/article/20160522/ba0f8edb9112b50dcc9b127611f58e73.png" target="_blank"></a>

HyperKit是一種輕量級虛拟化方法,基于MacOSX10.10之後引入的Hypervisor架構。HyperKit應用可以利用硬體虛拟化運作VMs,但是并不需要特殊權限或者複雜管理工具棧。

有幾個重要方面:

支援更多客戶機作業系統。Linux是目前唯一支援的作業系統。FreeBSD可以啟動,但是需要運作安裝器是以不是無縫的。為了啟動Windows,OpenBSD 或 NetBSD必須打更新檔加入更多BIOS支援,而且需要更細緻的測試。

支援更多進階語言綁定。因為HyperKit以庫形式表現,可以使用标準外界功能接口跟進階語言整合。

Hypervisor功能。某些傳統hypervisor功能,例如睡眠、恢複,實時硬體性能計數器重定位并不被支援。為了保證HyperKit輕量級和易于嵌入,這些功能可以以庫方式加進來。

我們會確定貢獻者被很好組織,他們調教代碼會被很好整合到上遊項目。 

DataKit是與Git相容檔案系統相協調的工具包。它重用了UNIX管道概念和Plan9 9P協定,同時使用了樹結構流資料而不是裸文本。DataKit使得使用者通過使用簡單腳本與複雜檔案系統,可以在松耦合程序之間定義複雜工作流。

README也介紹了如何将DataKit于Github整合。DataKit可以用于任何需要在資料(版本資料)之間協調的場景。

DataKit中對Github PR的支援還很原始,非常需要更多貢獻。DataKit可以被用于很多場景,歡迎分享使用者自己的項目。

VPNKit提供了Mac和Windows下Docker容器之間網絡互動點,可以用貢獻的抓包和監控的方法擴充,将特定包模式通過proxy協定轉發到過濾器進行過濾,或者通過HTTP協定可視化用于web應用排錯。

如果VPNKit支援更多端點(endpoint)類型,那麼它也可以用于測試網絡流量,而不會真正産生或者發送資料造成壓力。也可以在應用之間建立輕量級overlay網絡。

VPNKit和DataKit為Mac和Windows下Docker提供了特殊子產品,開源他們也許可以帶來更多驚喜。這種說法并不是互斥的,我們更希望聽到大家自己的項目。在各自項目中,可以記下各自bug。

原文釋出時間為:2016-05-22

本文作者:hokingyang

本文來自雲栖社群合作夥伴DockerOne,了解相關資訊可以關注DockerOne。

原文标題:Docker開源元件:HyperKit、VPNKit和DataKit介紹

繼續閱讀