Docker技術長Solomon Hykes在DockCon大會上,發表了可在不同作業系統上建立Linux容器環境的工具包LinuxKit。

圖片來源: 

Docker

二年前,當微軟宣布要在下一代Windows Server中支援Docker的時候,大家就在猜測,微軟會如何將原生自Linux世界的Docker,轉移到Windows世界中。

當時Docker圈有一種半開玩笑的說法是,「乾脆直接在Windows中裝一套Linux好了。」之所以是玩笑,因為Docker問世的目的,不只是為了讓應用程式可以到處部署,還希望可以比VM更善用系統資源,不要再透過一層Guest OS來執行程式碼。若只是在Windows Server中裝上一套Linux,再來跑Docker環境,豈不是多此一舉。沒想到,當時圈內流傳的這句玩笑話,竟然成真了。

微軟早在去年Window Server 2016問世時,和Docker聯手打造了一個Windows版本的Docker引擎,安裝在Windows OS中來執行,讓Docker映像檔可以部署到Windows環境,微軟後來甚至在Windows核心中,增加了一個Linux子系統,採用Ubuntu的使用者模式,可以用來運作Linux腳本程式,讓Windows和Linux兩個世界的距離,更拉近一點,但還沒做到可以讓Linux應用程式,直接在Windows環境中執行的理想目標。

直到今年DockerCon大會,Docker技術長Solomon Hykes發表了一個工具,它不只是在Windows中建立Docker環境的工具,甚至是能在任何平臺建立Docker環境的通用工具,也就是LinuxKit。

打造通用型超迷你Linux環境

過去,Docker為了讓容器環境支援不同平臺,分別為不同平臺開發了各自的Docker引擎版本,但這個作法畢竟不是長久之計,一旦出現了新的執行環境, Docker就得再推出一個新的Docker版本,而且支援的平臺越多,要維護的版本就越多,Solomon一直想找出一個一勞永逸的辦法,而最簡單的方法,就是想辦法將Linux環境帶到不同的平臺中,就不用為每個平臺開發各自的Docker引擎版本。

直到去年1月時,Docker併購了Unikernel Systems,這家公司打造出了一個只允許單一使用者,只能執行單一執行緒的超迷你作業系統Mirage OS——這個源自XEN計畫,採用了unikernel架構的作業系統,因為只保留執行應用程式所需的最少必要元件,去除了多緒執行等,因應複雜應用程式而生的作業系統核心服務,安裝後的大小不到3MB。

而Docker在併購Unikernel Systems團隊之後,也就掌握了自行設計底層Hypervisor和Unikernel作業系統技術,並交由這個團隊設計出了LinuxKit這個Linux子系統工具包。

Solomon這樣介紹,LinuxKit就像是專門用來執行Container的一個安全、精簡、可移動的Linux子系統。他解釋,在安全設計上,因為功能精簡,不像Linux內建超多項系統服務,因此出現資安漏洞的風險更低。而在系統精簡設計面,以最小的檔案容量,最快的啟動時間為原則,所有系統服務都是容器,任何元件也都可以抽換,讓系統具備彈性瘦身的能力。

不只跨平臺和跨雲,還能Intel和ARM架構雙棲

然而,採用子系統設計架構,是為了更容易移植和部署到不同的作業系統或平臺上,Solomon指出,LinuxKit的目標是要通吃桌面PC、筆電、伺服器、IoT裝置和大型主機的作業系統,甚至要Intel和ARM處理器雙棲,還要能支援虛擬化平臺和Bare Metal部署。

目前LinuxKit已經可以順利在OSX/hyperkit、VMware、Qemu/KVM環境中執行,也可以支援Google Cloud和Packet.net雲端環境。而AWS、Azure、Windows、Bluemix等環境也已支援,但CLI命令的部分還未完全整合。

另外,Docker團隊也正在開發對ARM 64架構處理器的支援,若可實現這項計畫,等於可以將LinuxKit,部署到採用ARM 64架構的Android手機上,未來,Docker也計畫擴大支援所有ARM處理器,甚至是其他系統架構如大型主機。

「在Windows內裝一套Linux。」這句話實現了一半,因為不是安裝一套完整的Linux,而是LinuxKit這個子系統,但不只是Windows,未來任何可以執行LinuxKit的平臺或環境,都將成為Docker的標準執行環境。因此,LinuxKit不只是打通了Windows和Linux的高牆,而是將全世界都推平,讓Container通行無阻的關鍵神器。


Advertisement

更多 iThome相關內容