值得推薦的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容器的快捷方式。安裝非常簡單:

第一次嘗試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基礎架構有很多不錯的選擇,當然看著好,不如用的好,真正能在生產環境中使用才是最後決勝者。

相關焦點

  • Docker專用基礎Linux發行版選擇
    隨著容器雲和Docker技術的發展,容器基礎鏡像OS和運行容器的宿主機OS的選擇都成了一個問題。有很多Linux發行商和雲運營商也發布了專門的容器發行版,與傳統發行版作業系統相比,這些Linux可能更安全,更簡練,發行版有一我們列出業界流行的幾種發行版,希望能幫助大家甄選最適合自己的發行版。
  • Docker & Singularity
    自從微軟更新了WSL2(雖然我一直在用WSL),但是發現docker只能在WSL2下使用,又是被需求更新。於是上網查了下window 家庭版的更新方法。打個補丁就好(可以參考該連結https://www.jianshu.com/p/a20c2d58eaac)。
  • Docker是什麼?有什麼用途?及理論知識詳細說明
    運維生成環境中:docker化。 了解docker三個重要概念 image鏡像 docker鏡像就是一個只讀模板,比如,一個鏡像可以包含一個完整的centos,裡面僅安裝apache或用戶的其他應用,鏡像可以用來創建docker容器,另外docker提供了一個很簡單的機制來創建鏡像或者更新現有的鏡像,用戶甚至可以直接從其他人那裡下周一個已經做好的鏡像來直接使用 container
  • 雲計算核心技術Docker教程:利用Dockerfile來創建鏡像
    在docker使用過程中,我們可以從已經創建的容器中更新鏡像,並且commit提交這個鏡像來創建新的鏡像,使用docker commit 來擴展一個鏡像比較簡單,但是不方便在一個團隊中分享此時我們可以使用 Dockerfile 指令來創建一個新的鏡像。
  • 2020社區最佳Linux發行版
    除了伺服器端運維們都喜歡Redhat Centos,開發和容器普遍喜歡Ubuntu外,對其他新入門的小白以及桌面UI黨們來說找一個好看好用的發行版還是需要自習甄選的。本文我們就給大家介紹一下2020年最受歡迎的Top 10發行版。
  • 雲計算核心技術Docker教程:Compose使用
    2.使用 docker-compose.yml 定義構成應用程式的服務,這樣它們可以在隔離環境中一起運行。3.最後,執行 docker-compose up 命令來啟動並運行整個應用程式。運行以下命令以下載 Docker Compose 的當前穩定版本:$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  • CoreOS實踐指南(七):Docker容器管理服務
    有了第一桶金的Alex這次準備幹一票大的,他計劃開發一個足以顛覆傳統的伺服器系統的Linux發行版。為了提供能夠從任意作業系統版本穩定無縫地升級到最新版系統的能力,Alex急需解決應用程式與作業系統之間的耦合問題。因此,當時還名不見經傳的Docker容器引起了他的注意,憑著敏銳直覺,Alex預見了這個項目的價值,當仁不讓地將Docker做為了這個系統支持的第一套應用程式隔離方案。
  • GNU/Linux與自由:隱藏在Linux發行版中的非自由軟體
    大多數發行版根本就不曾提供自由內核的選擇,更不用說推薦一個了。 非自由驅動程序 許多發行版包括了顯卡和無線網卡之類的非自由驅動程序。由於那些硬體是閉源的並且沒有文檔化,他們只能包含這些驅動來盡力增強硬體支持。
  • 國產linux發行版本——deepin作業系統安裝方法
    大家好,歡迎回到萬魔寺,前兩期,和大家一起學習了ubuntu系統的安裝,今天我們一起來學習一下國產linux作業系統deepin的安裝方法。deepin系統是由武漢深之度科技有限公司開發,在網絡上口碑比較好的一款linux國產發行版。
  • 適合Linux新手的最佳發行版
    一個很古老的問題,找到適合的Linux發行版比簡單的指出哪種Linux版本受歡迎更重要。為什麼這麼說?讓我們設置一個情景:你有一位用戶,很有可能,他過去大多數時候都是在Windows或者Mac系統上工作,他們想讓你給他們一個選擇的替代品。現在,你想要在很短的時間裡直截了當的說明Linux系統的工作方式並突出它的強大性和靈活性。
  • 【最新版】Docker實戰總結
    安裝使用 a) 搜索並下載鏡像 b) 單機方式運行 c) 訪問http://localhost:9000 首次登陸需要註冊用戶,給admin用戶設置密碼,然後單機版選擇local連接即可。
  • CBL-Mariner:微軟推出的 Linux 發行版
    該團隊最近發布了一個新的 Linux 發行版:CBL-Mariner,用於微軟的雲基礎架構以及邊緣產品和服務中。除 CBL-Mariner 外,Linux Systems Group 開發的與 Linux 相關的可交付成果還包括有: WSL2 隨附的 WSL2 Linux內核; 一個 Azure-tuned Linux 內核,可作為許多常見 Linux 發行版的補丁程序進行使用,對其進行優化以與微軟的 Hyper-V 虛擬機管理程序配合使用; 以及企業和安全團隊提出的 Linux 安全模塊
  • Deepin 2020是Linux發行版中的另一項創新
    Deepin OS是目前最酷的Linux發行版之一,已成功贏得了每個新手的青睞,其最新版本Deepin 20(1002)進行了許多改進,我需要花一天的時間來研究它們。
  • Docker 容器 9 類 48 個常見故障的處理和使用規範 | 周末送資料
    Docker是一種相對使用較簡單的容器,我們可以通過以下幾種方式獲取信息:1、通過docker run執行命令,或許返回信息2、通過docker logs 去獲取日誌,做有針對性的篩選3、通過systemctl status docker查看docker服務狀態4、通過journalctl -u docker.service
  • 使用Jenkins、Docker 構建部署 Serverless 應用
    Jenkins 有多種運行方式: jenkins.war + Tomcat java -jar jenkins.war 各種 linux 作業系統分發包(例如:rpm 包) Docker
  • 2016年十大Linux伺服器發行版排行榜
    我們進行了一番研究,分析了相關數字,測試了眾多的Linux發行版,整理出了***這份十大Linux伺服器發行版榜單――其中一些你可能不是很熟 悉。十大Linux伺服器發行版Linux伺服器發行版要躋身本榜單,需要在下列特點方面很出色:安裝和使用的簡易性、成本、可用的商業支持和數據中心可靠性。
  • 升級Ubuntu Linux 內核的幾種不同方法
    我們並不確定這些方法是不是也能適用於其他 Ubuntu 的特色發行版(如:Xubuntu)和衍生發行版(如:Linux Mint)。第一部分:需要重啟的內核升級以下方法需要你重啟系統以便新的內核生效。以下所有方法都建議在個人系統或測試系統中進行。重要的事兒再說一遍,請備份好你 Ubuntu 中的重要數據、配置文件和其他重要的東西。
  • Docker v1.13.0 正式版發布,應用容器引擎
    Docker v1.13.0 正式版發布了。
  • Docker 引擎概述
    Docker Engine 實際上是一個客戶端伺服器(client-server)應用:一個在伺服器上長期運行的被稱為 dockerd 的進程。一個指定結構的 APIs,這個 API 被用來與 Docker 守護進程進行通信。
  • Docker不再是唯一的選擇
    the temporary container ~ $ buildah run alpine-working-container  fetch http://dl-cdn.alpinelinux.org