經過Docker的LinuxKit,Linux容器終於能夠運行在Windows系統上了(外文翻譯)

本文來自Mobingi官方技術專欄,歡迎關注linux

本文翻譯自Finally, Linux Containers Could Run on Windows with Docker’s LinuxKitgit

image.png

自從兩年前推出第一個測試版,有一件事Windows容器一直沒有作,就是基於Windows環境,在Linux容器中,運行Linux程序集。這個所謂的「Linux子系統」,是一件必需要作的事。一年前微軟確實發佈了一個東西,可是奇怪的是,他並無解決這個容器移植問題。github

四月看起來是Docker和微軟一塊兒取得進展的一個月,週二上午在奧斯汀召開的 DockerCon 2017大會上,Docker公司的首席技術官 Solomon Hykes宣佈,將開源一部分由Docker公司主持參與開發的用於構建「Linux子系統」的工具集,叫LinuxKit,它將會提供一個剛恰好的基於Linux的平臺,在應用程序的下層,用於支持容器運行Linux應用程序。它能夠運行在任何操做系統上,包括Mac OS和Windows;也能夠運行在任何的主要雲平臺上,包括AWS,或者更難以想象地運行在一臺裸機上(沒有安裝任何操做系統)。docker

「Linux明顯是一個安全的操做系統」,Hykes宣稱,「它不須要咱們在安全方面的幫助,可是,還有一些問題。當你假設任何東西都是一個容器的話,你能夠把安全帶到一個新的水平。你能夠作不少假設,好比,你能夠定製一些專門的補丁和配置,從而進一步強化系統。」windows

Hykes花了一些時間來證明他的觀點,不過他實際上已經抓到了一些人的眼球。當容器化運行在一個自己也被包裹在其餘宿主環境(好比另一個Linux系統,或者一個第一代虛擬機)的空間中,全部的最嚴重的潛在安全風險都與宿主機和客戶機的邊界間通訊有關。安全

在一個全部系統都被虛擬化的環境中,沒有上面所說的邊界存在。因此,任何專門解決容器的安全性和認證問題的組件(好比 Docker Notary)也可能被用做底層系統安全網關。想象一下,基於角色訪問一個具備「linux子系統」的容器,你會從中獲得更多啓發。dom

「我不認爲Docker須要對你的Linux子系統的安全性負責,」Hykes認可,「實際上,咱們不認爲任何一個公司須要爲此全權負責。Linux太大了,也過重要了。因此,你依賴的使Linux自己安全的進程是開放的且社區驅動的,這一點很是很是重要。而且,在過去幾年裏,Linux社區也確實產出了許多好的成果。比起多躲在角落裏作全部事,不如從第一天開始就加入到這些開放的進程中。工具

這不只」開放「的迴歸,同時也是Docker公司在2015年採起與外部合做的政策。可是去年當Docker羣服務融入企業級平臺時,它彷佛被放棄過。事實上,Hykes再次詳述了做爲組件社區的容器生態,而Docker公司對今生態作的貢獻有限,沒有哪一個單一組件能成爲其餘全部組件必不可缺的核心。測試

該公司的明確政策是,限制Kubernetes(或者其餘任何人)對容器生態提的要求。這使得Docker公司不會失去任何一個和他們站在同一舞臺上的合做夥伴,好比微軟。操作系統

表明微軟Azure核心開發團隊的 John Gossman表示:」正如你所知,Docker開始於一個以Linux爲目標系統的項目,Docker將一些複雜的內核特性集成,使咱們獲得了咱們很是喜歡的簡單易用的開發體驗。而且Windows團隊也想讓Windows開發者們有一樣的開發體驗。」

Gossman講述了咱們都知道的,爲何微軟開發Windows容器(現稱爲Windows Server Containers)和Hyper-V容器的兩個獨立格式的故事。 前者以基於Linux的Docker容器共享Linux內核的方式共享Windows內核,而Hyper-V容器容許客戶機操做系統經過虛擬機在不一樣的主機平臺上運行客戶機操做系統的應用程序。 所以,對於Windows Server 2016,Microsoft爲基於Windows的Hyper-V容器建立了一種隔離空間,能夠最大限度地減小該虛擬機的佔用資源。Gossman說,藉助於LinuxKit,這種隔離方案正在擴展到基於Linux的容器中。

Gossman的演示已經充分證實理論上開發者能夠在Windows上,用Windows的工具進行開發、編譯、集成,而後在一個裝載Hyper-V的隔離空間裏的Linux容器鏡像中運行Linux程序。他的演示程序包括一個嵌入在linux容器中的BusyBox鏡像,而且Gossman證實了他能夠在他的筆記本上運行並激活這個Linux內核。這也一樣證實了任何Linux,大到企業級的Linux,小到最小化的CoreOS均可以做爲程序運行的宿主機。固然,在聽衆中必定有很多人可能計劃過用SELinux做爲隔離空間的內核。

「你的平臺安全性取決於它安全性最弱的組件,」Docker公司的Hykes說,這樣使得Docker將全部關於安全性責任的爭論轉移到Linux頭上。「你必須單獨考慮每一層,」他繼續說,「Docker有許多組件,咱們一直很擔憂它們存在的全部安全問題,以及組件與安全性之間如何相互配合。」

Hykes在他的主題演講中表示,Docker的整個演進過程都是「投訴驅動的」。開發人員抱怨,工程師組裝和修正,平臺獲得改進。開發人員兩年前確實有過大聲抱怨。若是歷史證實Hykes是正確的,咱們須要銘記Docker公司是如何迴應這個抱怨的。

相關文章
相關標籤/搜索