值得推薦的Docker專用基礎(chǔ)Linux發(fā)行版
隨著容器云和Docker技術(shù)的發(fā)展,容器基礎(chǔ)鏡像OS和運行容器的宿主機OS的選擇都成了一個問題。有很多Linux發(fā)行商和云運營商也發(fā)布了專門的容器發(fā)行版,與傳統(tǒng)發(fā)行版操作系統(tǒng)相比,這些Linux可能更安全,更簡練,發(fā)行版有一我們列出業(yè)界流行的幾種發(fā)行版,希望能幫助大家甄選最適合自己的發(fā)行版。
概述
容器專用操作系統(tǒng)是指專為運行容器而設(shè)計的Linux發(fā)行版,這些發(fā)行版可以提供常規(guī)發(fā)行外一些額外的優(yōu)勢:
- 簡練:容器專用操作系統(tǒng)應該很小,僅安裝必須的組件。最大可能減少附帶的工具和應用。
- 原子更新。
- 默認情況下,就可構(gòu)建大規(guī)模群集
- 可以自動運行Docker守護程序。
- 根文件系統(tǒng)只讀。
- 原子更新可回滾(雙分區(qū)更新方案)。
- 增強的穩(wěn)定性和安全性。
根據(jù)這些特征我們來對比下常見的容器Linux發(fā)行版:CoreOS,Ubuntu Snappy,Atomic,RancherOS還有Photon。
這些發(fā)行版默認都是云原生的,它提供了一個多發(fā)行包,可以很方便地用于云實例的早期初始化。
CoreOS
CoreOS是基于Linux內(nèi)核的云原生發(fā)行版,專注于安全、可靠、集群化,可自動化,輕松部署。作為一個容器操作系統(tǒng),CoreOS 提供運行現(xiàn)代基礎(chǔ)架構(gòu)堆棧所需的功能,包括容器運行所需要的基礎(chǔ)功能環(huán)境以及一系列內(nèi)建的服務(wù)發(fā)現(xiàn)和共享配置的工具。CoreOS的策略和體系結(jié)構(gòu)允許用戶以高彈性運行大規(guī)模服務(wù)。
CoreOS附帶有兩個容器運行時(例如Docker和Rocket),它們可以在每個節(jié)點上自動配置。另外,CoreOS還提供自動更新,可以默認獲取所有更新。
CoreOS使用自己的內(nèi)置ignition作為啟動點。Ignition是在首次啟動時運行的配置工具,可讓用戶以不變的方式配置節(jié)點。在CoreOS上運行應用程序的首選方法是在容器中運行它們。
etcd也是CoreOS的優(yōu)勢之一。etcd是一個分布式鍵值緩存服務(wù)器,它被Kubernetes,Cloud Foundry等許多項目使用。可以使用etcd進行簡單的服務(wù)發(fā)現(xiàn)等等。
大型云提供商基本都上都提供了對CoreOS支持。
2018年CoreOS被紅帽子收購,升級版本Fedora CoreOS是目前紅帽云戰(zhàn)略中最重要的產(chǎn)品和服務(wù)。
Flatcar Linux是CoreOS Container Linux的一個友好的開源分支。Flatcar Linux是Container Linux的直接替代產(chǎn)品。Flatcar背后的主要思想是以社區(qū)驅(qū)動的方式支持Container Linux。
Ubuntu Core
Ubuntu Core是適用于IoT設(shè)備和大型容器部署的Ubuntu的微型事務(wù)版本。它運行著一種新型的超級安全,可遠程升級的Linux應用程序軟件包,稱為snaps,被芯片組廠商,設(shè)備制造商和系統(tǒng)集成商等領(lǐng)先的物聯(lián)網(wǎng)廠商支持和信任。
Ubuntu Core內(nèi)置了Canonical的AppArmor內(nèi)核安全系統(tǒng),提供人性化的安全性。Ubuntu Core可讓應用程序彼此完全隔離以保證安全。
Ubuntu Core可以通過所謂的snap(例如Docker)輕松地進行擴展,將一個snap添加到Ubuntu Core后,就可在它上運行應用程序。

Ubuntu Core中的所有操作系統(tǒng)和應用程序文件都保持單獨且為只讀鏡像。這使Ubuntu Core上的更新,很容易又可預測。通過增量管理,Ubuntu Core能使下載量最小。Ubuntu Core還提供了系統(tǒng)和應用程序更新的回滾。
默認情況下, Ubuntu Core并沒有內(nèi)置Docker運行時,但是用戶可以輕松地將Docker安裝為運行Docker容器的快捷方式。安裝非常簡單:
- sudo snappy install docker
第一次嘗試Ubuntu Core時,需要一個Ubuntu帳戶,用于ssh密鑰的初始配置。
RancherOS
RancherOS項目目的是構(gòu)建一個極簡的Linux發(fā)行版,可以讓Docker直接在Linux內(nèi)核之上運行,并將所有用戶空間Linux服務(wù)作為Docker容器分發(fā)。這樣,就無需為RancherOS本身使用單獨的軟件包分發(fā)機制。
總之,RancherOS是由Containers構(gòu)成的OS,以PID 1運行Docker守護程序, Docker守護程序是內(nèi)核啟動的第一個進程。RancherOS中運行了2個Docker守護進程,一個用于系統(tǒng)(System Docker),一個用于用戶(User Docker),系統(tǒng)Docker負責啟動所有系統(tǒng)服務(wù),例如udev,DHCP和控制臺。因此,RancherOS使用Docker作為初始化系統(tǒng),并將所有系統(tǒng)服務(wù)作為Docker容器進行管理。

RancherOS附帶兩個Docker守護程序的原因之一是,當用戶不小心從用戶Docker停止/刪除所有容器時,系統(tǒng)仍然可以正常工作。
在Docker容器中運行所有內(nèi)容時,總是可以通過RancherOS獲得最新的Docker版本??梢酝ㄟ^運行其他系統(tǒng)容器來輕松擴展RancherOS,例如,可以運行自己的控制臺容器來訪問自己喜歡的控制臺。由于系統(tǒng)超級精簡,所以安全漏洞更加少并且需要更少的補丁程序,并提供更高的穩(wěn)定性。
由于所有系統(tǒng)服務(wù)都是作為Docker容器交付的,無需任何諸如apt-get或yum的軟件包管理工具。由于內(nèi)核和initrd不是Docker容器,因此RancherOS也使用Docker打包和分發(fā)來交付內(nèi)核和initrd更新。
RancherOS也可以被視為嵌入式系統(tǒng)和IoT設(shè)備的解決方案。
VMware Photon
Photon是最小的Linux容器主機的技術(shù)預覽版本。Photon的設(shè)計尺寸很小,可以在VMware平臺上快速啟動。Photon旨在為虛擬化環(huán)境中運行的容器化應用程序進行協(xié)作。
VMware迅速為容器化應用程序創(chuàng)建新的操作系統(tǒng)。VMware Photon是為vSphere優(yōu)化的最小的Linux容器主機。Photon支持所有基于Vmware Warden的通用容器,例如Docker,rocket和Pivotal Garden容器規(guī)范。另外,Photon還帶有有效的生命周期管理,其中包含與yum兼容的軟件包管理器。

使用Photon的主要好處是VMware的Lightwave。Lightwave提供了用于身份驗證和授權(quán)的集中式身份管理。它支持許多開放標準,例如LDAP,Kerberos,SAML和OAuth 2.0。Lightwave將容器安全性引入了新的一層,實現(xiàn)支持集中式身份和訪問管理。
結(jié)論
如何選擇一個合適的基礎(chǔ)發(fā)行版,具體取決于工作負載和環(huán)境。在服務(wù)器/云/數(shù)據(jù)中心領(lǐng)域一直不斷有新技術(shù)在推出和嘗試,運行Docker基礎(chǔ)架構(gòu)有很多不錯的選擇,當然看著好,不如用的好,真正能在生產(chǎn)環(huán)境中使用才是最后決勝者。