Docker專用基礎Linux發行版選擇

2021-01-10 蟲蟲搜奇

隨著容器雲和Docker技術的發展,容器基礎鏡像OS和運行容器的宿主機OS的選擇都成了一個問題。有很多Linux發行商和雲運營商也發布了專門的容器發行版,與傳統發行版作業系統相比,這些Linux可能更安全,更簡練,發行版有一我們列出業界流行的幾種發行版,希望能幫助大家甄選最適合自己的發行版。

概述

容器專用作業系統是指專為運行容器而設計的Linux發行版,這些發行版可以提供常規發行外一些額外的優勢:

簡練:容器專用作業系統應該很小,僅安裝必須的組件。最大可能減少附帶的工具和應用。

原子更新。

默認情況下,就可構建大規模群集

可以自動運行Docker守護程序。

根文件系統只讀。

原子更新可回滾(雙分區更新方案)。

增強的穩定性和安全性。

根據這些特徵我們來對比下常見的容器Linux發行版:CoreOS,Ubuntu Snappy,Atomic,RancherOS還有Photon。

這些發行版默認都是雲原生的,它提供了一個多發行包,可以很方便的用於雲實例的早期初始化。

CoreOS

CoreOS是基於Linux內核的雲原生發行版,專注於安全、可靠、集群化,可自動化,輕鬆部署。作為一個容器作業系統,CoreOS 提供運行現代基礎架構堆棧所需的功能,包括容器運行所需要的基礎功能環境以及一系列內建的服務發現和共享配置的工具。CoreOS的策略和體系結構允許用戶以高彈性運行大規模服務。

CoreOS附帶有兩個容器運行時(例如Docker和Rocket),它們可以在每個節點上自動配置。另外,CoreOS還提供自動更新,可以默認獲取所有更新。

CoreOS使用自己的內置ignition作為啟動點。Ignition是在首次啟動時運行的配置工具,可讓用戶以不變的方式配置節點。在CoreOS上運行應用程式的首選方法是在容器中運行它們。

etcd也是CoreOS的優勢之一。etcd是一個分布式鍵值緩存伺服器,它被Kubernetes,Cloud Foundry等許多項目使用。可以使用etcd進行簡單的服務發現等等。

大型雲提供商基本都上都提供了對CoreOS支持。

2018年CoreOS被紅帽子收購,升級版本Fedora CoreOS是目前紅帽雲戰略中最重要的產品和服務。

Flatcar Linux是CoreOS Container Linux的一個友好的開源分支。Flatcar Linux是Container Linux的直接替代產品。Flatcar背後的主要思想是以社區驅動的方式支持Container Linux。

Ubuntu Core

Ubuntu Core是適用於IoT設備和大型容器部署的Ubuntu的微型事務版本。它運行著一種新型的超級安全,可遠程升級的Linux應用程式軟體包,稱為snaps,被晶片組廠商,設備製造商和系統集成商等領先的物聯網廠商支持和信任。

Ubuntu Core內置了Canonical的AppArmor內核安全系統,提供人性化的安全性。Ubuntu Core可讓應用程式彼此完全隔離以保證安全。

Ubuntu Core可以通過所謂的snap(例如Docker)輕鬆地進行擴展,將一個snap添加到Ubuntu Core後,就可在它上運行應用程式。

Ubuntu Core中的所有作業系統和應用程式文件都保持單獨且為只讀鏡像。這使Ubuntu Core上的更新,很容易又可預測。通過增量管理,Ubuntu Core能使下載量最小。Ubuntu Core還提供了系統和應用程式更新的回滾。

默認情況下, Ubuntu Core並沒有內置Docker運行時,但是用戶可以輕鬆地將Docker安裝為運行Docker容器的快捷方式。安裝非常簡單:

sudo snappy install docker

第一次嘗試Ubuntu Core時,需要一個Ubuntu帳戶,用於ssh密鑰的初始配置。

RancherOS

RancherOS項目目的是構建一個極簡的Linux發行版,可以讓Docker直接在Linux內核之上運行,並將所有用戶空間Linux服務作為Docker容器分發。這樣,就無需為RancherOS本身使用單獨的軟體包分發機制。

總之,RancherOS是由Containers構成的OS,以PID 1運行Docker守護程序, Docker守護程序是內核啟動的第一個進程。RancherOS中運行了2個Docker守護進程,一個用於系統(System Docker),一個用於用戶(User Docker),系統Docker負責啟動所有系統服務,例如udev,DHCP和控制臺。因此,RancherOS使用Docker作為初始化系統,並將所有系統服務作為Docker容器進行管理。

RancherOS附帶兩個Docker守護程序的原因之一是,當用戶不小心從用戶Docker停止/刪除所有容器時,系統仍然可以正常工作。

在Docker容器中運行所有內容時,總是可以通過RancherOS獲得最新的Docker版本。可以通過運行其他系統容器來輕鬆擴展RancherOS,例如,可以運行自己的控制臺容器來訪問自己喜歡的控制臺。由於系統超級精簡,所以安全漏洞更加少並且需要更少的補丁程序,並提供更高的穩定性。

由於所有系統服務都是作為Docker容器交付的,無需任何諸如apt-get或yum的軟體包管理工具。由於內核和initrd不是Docker容器,因此RancherOS也使用Docker打包和分發來交付內核和initrd更新。

RancherOS也可以被視為嵌入式系統和IoT設備的解決方案。

VMware Photon

Photon是最小的Linux容器主機的技術預覽版本。Photon的設計尺寸很小,可以在VMware平臺上快速啟動。Photon旨在為虛擬化環境中運行的容器化應用程式進行協作。

VMware迅速為容器化應用程式創建新的作業系統。VMware Photon是為vSphere優化的最小的Linux容器主機。Photon支持所有基於Vmware Warden的通用容器,例如Docker,rocket和Pivotal Garden容器規範。另外,Photon還帶有有效的生命周期管理,其中包含與yum兼容的軟體包管理器。

使用Photon的主要好處是VMware的Lightwave。Lightwave提供了用於身份驗證和授權的集中式身份管理。它支持許多開放標準,例如LDAP,Kerberos,SAML和OAuth 2.0。Lightwave將容器安全性引入了新的一層,實現支持集中式身份和訪問管理。

結論

如何選擇一個合適的基礎發行版,具體取決於工作負載和環境。在伺服器/雲/數據中心領域一直不斷有新技術在推出和嘗試,運行Docker基礎架構有很多不錯的選擇,當然看著好,不如用的好,真正能在生產環境中使用才是最後決勝者。

相關焦點

  • 開源工場 2018 最佳 Linux 發行版排行榜
    性能最好的發行版:Clear Linux當然,首先必須還是要說明,這個性能最好是指在普通用戶中最常用的 X86 處理器平臺,畢竟專用領域的特別開發的不應該放到通用領域來進行對比。Clear Linux 是一個滾動更新發行版,主要專注於容器和雲端。相比其它發行版,它採用了最具有進取性的優化策略以提供最快的性能,默認啟用了許多編譯器優化,運行時根據 CPU 類型自動選擇最正確的架構特定代碼版本。
  • 面向Linux 新用戶的八款最佳 Linux 發行版
    Linux新用戶總是為一開始選擇最佳Linux發行版而感到困惑。由於外頭有數百款Linux發行版,所以這始終是件讓人困惑的事情。
  • Alpine Linux 3.10.0 發布,面向安全的輕量級 Linux 發行版
    Alpine Linux 是一個面向安全的輕量級 Linux 發行版,該發行版以安全為理念,面向 x86 路由器、防火牆、虛擬專用網、IP 電話盒及伺服器而設計。另外,不同於常見的 Linux 發行版,Alpine Linux 採用 musl libc 和 busybox 以減小系統的體積和運行時資源消耗。
  • docker 門外初體驗——docker 安裝(一)
    二、安裝三、驗證四、總結前言重寫對docker的學習記錄,最主要的原因之一,花了大量的時間進行學習,形成一個從0至1的認識,但是工作中卻沒見有實際應用,導致所學的知識存活率很低,也為了豐富自身的技術體系一、docker是什麼?Docker 是一個開源的應用容器引擎。
  • 一個值得推薦的發行版:Manjaro Linux
    Manjaro並不像Debian或者Arch這些Linux發行版一樣歷史悠久,但是它依然十分的穩定而可靠,從而在各色發行版中顯得鶴立雞群。2011年Manjaro才推出了第一個版本。從那以後它一直在不斷的進步,今天最新的版本為16.06.1,代號為「Daniella」。
  • HandyLinux 1.7 發布,面向新手的 Linux 發行版
    重新設計了瀏覽器的啟動頁面;完善 gpart 和 Yelp;清理了文檔文件;為直接訪問流行社交網站添加了 "social launchers";添加了Diaspora launcher;Debian 7.7更多更新內容請看發行說明
  • 下一代容器工具podman介紹及與Docker的比較
    實際上,您可以將容器鏡像中的內容,視為 Linux 發行版的一個安裝實例,因為其中完整包含 RPM 軟體包、配置文件等內容。但是,安裝容器鏡像發行版,要比安裝新的作業系統副本容易得多。這樣可以避免危機,做到皆大歡喜。在需要很高的可移植性、可配置性和隔離的情況下,我們可以通過不同的方式,利用 Linux 容器解決難題。
  • 雲計算核心技術Docker教程:Docker多階段構建
    RUN go get -d -v golang.org/x/net/html \&& CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .請注意,此示例還RUN使用Bash&&運算符將兩個命令人工壓縮在一起,以避免在鏡像中創建額外的圖層。
  • BlackArch Linux 2020.12.01 發布,滲透測試發行版
    BlackArch Linux 是一個基於 Arch Linux 的滲透測試發行版,它被設計為服務於系統滲透測試人員及安全研究人員,到目前為止它預裝了 2600 多種專用工具用於滲透測試和計算機取證分析。
  • 如何開始docker - docker架構及創建容器
    docker架構傳統的虛擬機架構是 物理機 -> 宿主機作業系統 -> Hypervisor支持 -> 虛擬機作業系統 -> 應用程式docker架構是 物理機 -> 宿主機作業系統 -> docker引擎 ->
  • 巧用Docker 在 Linux 下 運行微信 PC 客戶端
    DoChat(盒裝微信)是一個 Linux 下的 Docker 化的微信 PC Windows 客戶端,項目地址:https://github.com/huan/docker-wechat,當然既然是容器化的,理論上運行多個客戶端也是可行的
  • 2016年最佳Linux發行版排行榜
    2016 Linux 將更加精彩,所以我們選擇了一些大放異彩的發行版。現在就帶你去領略一下各領域的風採吧!最好的回歸發行版:openSUSEopenSUSE 背後的 SUSE 公司是最老的 Linux 企業,它成立於 Linus Torvalds 宣布放出 Linux 的一年後。
  • Docker是什麼?有什麼用途?及理論知識詳細說明
    運維生成環境中:docker化。 了解docker三個重要概念 image鏡像 docker鏡像就是一個只讀模板,比如,一個鏡像可以包含一個完整的centos,裡面僅安裝apache或用戶的其他應用,鏡像可以用來創建docker容器,另外docker提供了一個很簡單的機制來創建鏡像或者更新現有的鏡像,用戶甚至可以直接從其他人那裡下周一個已經做好的鏡像來直接使用 container
  • Linux編譯安裝PaddlePaddle
    ://storage.googleapis.com/golang/go1.8.1.linux-amd64.tar.gz(谷歌有關),故而使用者需要保證電腦可以科學上網。解決方法: 選擇下載並使用docker.paddlepaddlehub.com/paddle:latest-devdocker鏡像,執行命令如下:git clone https://github.com/PaddlePaddle/Paddle.gitcd Paddlegit checkout -b 0.14.0 origin/release/0.14.0sudo
  • docker下高並發和高可用之docker swarm使用
    至少2臺Linux的主機,這裡選擇CentOS72.Xshell工具在Windows作業系統下通過VMware Workstation創建兩臺CentOS的虛擬機虛擬機啟動後,通過xShell分別連接上兩臺虛擬機分別為兩臺虛擬機安裝docker
  • IT運維工程師們為什麼選擇使用Linux系統
    linux自誕生之日起,便受到了全世界優秀黑客程式設計師們的百般寵愛與關注。曾經,linux似乎離我們非常遙遠;而現在,越來越多的人聽說了linux,會去討論linux發行版,會去關注linux內核。而程式設計師們更是熱衷於使用linux,在linux開發。
  • 什麼是Docker,和虛擬機有怎樣的區別
    入門大全,目前都已經是容器化、全面上雲的時代了,作為開發者docker是必須要了解的,那麼如果你從來沒有了解過docker,這個系列的課程將會分為30節課左右,帶你入門docker,歡迎一起來學習!本期系列課程的學習目標課程簡介掌握Docker基礎知識完成Docker安裝與啟動大綱掌握Docker鏡像與容器相關命令大綱掌握Tomcat Nginx 等軟體的常用應用的安裝掌握docker遷移與備份相關命令大綱能夠運用Dockerfile編寫創建容器的腳本大綱能夠搭建與使用
  • 理解docker鏡像與容器
    docker有兩個重要的概念:鏡像,容器。這裡需要說明一個概念,傳統虛擬機上面安裝的鏡像包含兩個部分,一個是Linux內核的發行版(比如Linux3.13內核),一個是作業系統的發行版(比如說ubuntu15.04),這部分內容不包含Linux內核,但是包含Linux之外的軟體管理方式,軟體驅動,如 apt-get軟體管理包等。內核和發行版是相對獨立的,我們可能都做過這樣的事:升級發行版中的內核。
  • centos7下安裝docker
    言歸正傳,我們來看看如何安裝docker       本次所用系統:centos 7      在安裝之前我們需要介紹下環境,    1. 使用下列命令建立穩定的庫$ sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo有了依賴包和所需要的庫之後,安裝就順利成章:  1)安裝docker$ sudo yum install docker-ce
  • Docker入門知識|Docker資源容器 與 VM虛擬機的區別與聯繫
    對於linux/unix系統,也是如此,一個linux(unix系統)被分隔為多個相對獨立的小系統(麻雀雖小卻五臟俱全)。不得不說說的linux-kvm。Cgroup被引入linux系統的內核體系,隨之基於cgroup的應用就多了起來!也許很多朋友一開始只希望用這個cgroup來實行作業系統層面資源隔離,從而形成linux系統下多用戶使用中的資源安全。可是GO語言出來之後,喜歡嘗鮮的程式設計師,用GO寫出了docker這大型工具。GO的新生面孔與Docker強大未來前途,一下子把高密度運算帶到了一個新高度。