国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

不止Docker:八款容器管理開源方案

云計算
作為第一個吃螃蟹的人,Docker設置了新加入者必須遵守的標準。例如,Docker有一個大型系統鏡像庫。所有的替代方案都必須使用相同的鏡像格式,同時試圖改變Docker所基于的整個堆棧的一個或多個部分。在此期間,出現了新的容器標準,容器生態系統朝著不同方向發展。現在除了Docker之外,還有很多方法可以使用容器。

Docker誕生于2013年,并普及了容器的概念,以至于大多數人仍然將容器的概念等同于“Docker容器”。

作為第一個吃螃蟹的人,Docker設置了新加入者必須遵守的標準。例如,Docker有一個大型系統鏡像庫。所有的替代方案都必須使用相同的鏡像格式,同時試圖改變Docker所基于的整個堆棧的一個或多個部分。

[[410087]]

在此期間,出現了新的容器標準,容器生態系統朝著不同方向發展。現在除了Docker之外,還有很多方法可以使用容器。

在本文中,我們將介紹以下內容:

  • 將Chroot、cgroups和命名空間作為容器的技術基礎
  • 定義Docker所基于的軟件堆棧
  • 說明Docker和Kubernetes需要堅持和遵守的標準
  • 介紹替代解決方案,這些解決方案嘗試使用具有更好更安全的組件來替換原始Docker容器。

容器的軟件堆棧

像Chroot 調用、 cgroups 和命名空間等 Linux 特性幫助容器在與所有其他進程隔離的情況下運行,從而保證運行時的安全性。

Chroot

所有類似Docker的技術都起源于類似Unix操作系統(OS)的根目錄。在根目錄上方是根文件系統和其他目錄。

從長遠來看,這是很危險的,因為根目錄中任何不需要的刪除都會影響整個操作系統。這就是為什么存在一個系統調用chroot()。它創建了額外的根目錄,例如一個用于運行遺留軟件,另一個用于包含數據庫等等。

對于所有這些環境,chroot似乎是一個真正的根目錄,而是實際上,它只是將路徑名添加到任何以/開頭的名字上。真正的根目錄仍然存在,并且任何進程都可以引用指定根目錄以外的任何位置。

Linux cgroups

自2008年2.6.24版本以來,Control groups (cgroups)一直是Linux內核的一項功能。Cgroup將同時限制、隔離和測量多個進程的系統資源(內存、CPU、網絡和I/O)使用情況。

假設我們想阻止用戶從服務器發送大量電子郵件。我們創建了一個內存限制為1GB、CPU占用率為50%的cgroup,并將應用程序的 processid添加到該組中。當達到這些限制時,系統將限制電子郵件發送過程。它甚至可能終止進程,這取決于托管策略。

Namespaces

Linux命名空間是另一個有用的抽象層。命名空間允許我們擁有許多進程層次,每個層次都有自己的嵌套“子樹(subtree)”。命名空間可以使用全局資源,并將其呈現給其成員,就像它是自己的資源一樣。

具體來看,Linux系統開始時的進程標識符(PID)為1,并且所有其他進程將包含在其樹中。PID命名空間允許我們跨越一棵新樹,它擁有自己的PID 1進程。現在有兩個值為1的PID,每個命名空間可以產生自己的命名空間,并且相同的過程可以附加了幾個PID。

子命名空間中的一個進程將不知道父級的進程存在,而父命名空間將可以訪問整個子命名空間。

有七種類型的名稱空間:cgroup、IPC、網絡、mount、PID、用戶和UTS。

Network Namespace

一些資源是稀缺的。按照慣例,有些端口具有預定義的角色,不應用于其他任何用途:端口80僅服務于HTTP調用,端口443僅服務于HTTPS調用等等。在共享主機環境中,兩個或多個站點可以監聽來自端口80的HTTP請求。第一個獲得該端口的站點不允許任何其他應用程序訪問該端口上的數據。第一個應用程序在互聯網上是可見的,而其他所有應用程序將不可見。

解決方案是使用網絡命名空間,通過網絡命名空間,內部進程將看到不同的網絡接口。

在一個網絡命名空間中,同一端口可以是開放的,而在另一個網絡命名空間中,可以關閉該端口。為此,我們必須采用額外的“虛擬”網絡接口,這些接口同時屬于多個命名空間。中間還必須有一個路由器進程,將到達物理設備的請求連接到相應的名稱空間和其中的進程。

復雜嗎?這就是為什么Docker和類似工具如此受歡迎。現在讓我們來介紹一下Docker,以及它的替代方案。

Docker: 人人可用的容器

在容器統治云計算世界之前,虛擬機非常流行。如果你有一臺Windows機器,但想為iOS開發移動應用程序,你可以購買一臺新的Mac,或者將其虛擬機安裝到Windows硬件上。虛擬機也可能是笨重的,它們經常吞噬不需要的資源,而且啟動速度通常很慢(長達一分鐘)。

容器是標準軟件單元,具有運行程序所需的一切:操作系統、數據庫、鏡像、圖標,軟件庫、代碼和所需的其他組件。容器的運行也與所有其他容器,甚至與操作系統本身隔離。與虛擬機相比,容器是輕量級的,所以它們可以快速啟動,并且容易被替換。

要運行隔離和保護,容器需要基于Chroot、cgroups和命名空間。

容器的鏡像是在實際機器上形成應用程序的模板,能夠根據單個鏡像創建盡可能多的容器,一個名為Dockerfile的文本文件包含了組裝鏡像所需的所有信息。

Docker帶來的真正革命是創建了Docker鏡像倉庫和開發了Docker引擎,這些鏡像以相同的方式在各地運行,作為第一個被廣泛采用的容器鏡像,形成了一個不成文的世界標準,所有后來的入局者都必須關注它。

CRI and OCI

OCI 全稱為Open Container Initiative,它發布鏡像和容器的規范。它于2015年由Docker發起,并被微軟、Facebook、英特爾、VMWare、甲骨文和許多其他行業巨頭接受。

OCI還提供了規范的一個實現,被稱為runc ,它可以直接使用容器,創建并運行它們等。

容器運行時接口(Container Runtime Interface,簡稱CRI)是一個Kubernetes API,它定義了Kubernetes如何與容器運行時交互。它也是標準化的,所以我們可以選擇采用哪個CRI實現。

用于CRI和OCI的容器的軟件堆棧

Linux是運行容器的軟件堆棧中最基本的部分:

請注意,Containerd和CRI-O都堅持CRI和OCI規范。對于Kubernetes而言,這意味著它可以使用Containerd或CRI-O,而用戶不會注意到其中的區別。它還可以使用我們現在要提到的任何其他替代方案——這正是創建和采用了OCI和CRI等軟件標準的目標。

Docker軟件堆棧

Docker的軟件堆棧包括:

  • docker-cli,面向開發者的Docker命令行界面
  • containerd,最初由Docker編寫,后來作為一個獨立的項目啟動; 它實現了CRI規范
  • runc,它實現了OCI規范
  • 容器(使用chroot、cgroups、命名空間等)

Kubernetes的軟件堆棧幾乎是相同的;Kubernetes使用CRI-O,而不是Containerd,這是由Red Hat / IBM和其他人創建的CRI實現。

containerd

containerd作為一個守護程序在Linux和Windows上運行。它加載鏡像,將其作為容器執行,監督底層存儲,并負責整個容器的運行時間和生命周期。

Containerd誕生于2014年,一開始作為Docker的一部分,2017年成為云原生計算基金會(CNCF)中的一個項目,并于2019年年初畢業。如果你想了解一些Containerd的使用技巧,歡迎查看下方的文章:

配置 containerd 鏡像倉庫完全攻略

runc

runc是OCI規范的參考實現。它創建并運行容器以及其中的進程。它使用較低級別的Linux特性,比如cgroup和命名空間。

runc的替代方案包括Kata-Runtime、GVisor和CRI-O。

Kata-Runtime使用硬件虛擬化作為單獨的輕量級VM實現OCI規范。它的運行時與OCI、CRI-O和Containerd兼容,因此它可以與Docker和Kubernetes無縫工作。

Google的gVisor創建包含自己內核的容器。它通過名為runsc的項目實現OCI,該項目與Docker和Kubernetes集成。有自己內核的容器比沒有內核的容器更安全,但它不是萬能的,而且這種方法在資源使用上要付出代價。

CRI-O是一個純粹為Kubernetes設計的容器堆棧,是CRI標準的第一個實現。它從任何容器鏡像倉庫中 提取鏡像,可以作為使用Docker的輕量級替代方案。

今天它支持runc和Kata Containers作為容器運行時,但也可以插入任何其他OC兼容的運行時(至少在理論上)。

它是一個CNCF孵化項目。

Podman

Podman是一個沒有守護進程的Docker替代品。它的命令有意與Docker盡可能兼容,以至于您可以在CLI界面中創建一個別名并開始使用單詞“Docker”而不是“podman”。

Podman的目標是取代Docker,因此堅持使用相同的命令集是有意義的。Podman試圖改進Docker中的兩個問題。

首先,Docker總是使用內部守護進程執行。守護進程是在后臺運行的單進程。如果它失敗了,整個系統就會失敗。

第二,Docker作為后臺進程運行,具有root權限,所以當你給一個新的用戶訪問權時,你實際上是給了整個服務器的訪問權。

Podman是一個遠程Linux客戶端,可直接從操作系統運行容器。你也可以以rootless模式運行它們。它從DockerHub下載鏡像,并以與Docker完全相同的方式運行它們,具有完全相同的命令。

Podman以root以外的用戶身份運行命令和鏡像,所以它比Docker更安全。另一方面,有許多為Docker開發的工具在Podman上是不可用的,如Portainer和Watchtower。擺脫Docker意味著放棄你之前建立的工作流程。

Podman的目錄結構與buildah、skopeo和CRI-I類似。它的Pod也非常類似于KubernetesPod。

Linux容器:LXC和LXD

LXC(LinuX Containers)于2008年推出,是Linux上第一個上游內核的容器。Docker的第一個版本使用了LXC,但在后來的發展中,由于已經實現了runc,所以LXC被移除了。

LXC的目標是使用一個Linux內核在一個控制主機上運行多個隔離的Linux虛擬環境。為此,它使用了cgroups功能,而不需要啟動任何虛擬機;它還使用命名空間,將應用程序與底層系統完全隔離。

LXC旨在創建系統容器,幾乎就像你在虛擬機中一樣——但硬件開銷很小,因為這些硬件是被虛擬化的。

LXC不模擬硬件和軟件包,只包含需要的應用程序,所以它幾乎以裸機速度執行。相反,虛擬機包含整個操作系統,然后模擬硬件,如硬盤、虛擬處理器和網絡接口。

所以,LXC是小而快的,而虛擬機是大而慢的。另一方面,虛擬環境不能被打包成現成的、可快速部署的機器,而且很難通過GUI管理控制臺進行管理。LXC要求技術人員有很高的技術水平,并且優化后的機器可能與其他環境不兼容。

LXC VS Docker

LXC就像Linux上的一個增壓chroot,它產生的“小”服務器啟動更快,需要更少的RAM。然而,Docker提供了更多特性:

  • 跨機器的可移植部署:使用一個版本的Docker創建的對象可以傳輸并安裝到任何其他支持Docker的Linux主機上。
  • 版本控制:Docker可以用一種類似git的方式跟蹤版本——您可以創建容器的新版本,將它們回滾等等。
  • 重復使用組件:使用Docker,您可以將已經創建的包堆疊到新包中。如果您想要一個LAMP環境,可以安裝一次它的組件,然后將它們作為預先制作的LAMP鏡像重新使用。
  • Docker鏡像存檔:可以從專用站點下載數十萬個Docker鏡像,并且很容易將新鏡像上傳到這樣的鏡像倉庫中。

LXC面向系統管理員,而Docker更面向開發人員。這就是Docker更受歡迎的原因所在。

LXD

LXD有一個特權守護進程,它通過本地UNIX socket和網絡(如果啟用)公開REST API。您可以通過命令行工具訪問它,但它總是使用REST API調用進行通信。無論客戶端是在本地機器上還是在遠程服務器上,它的功能都是一樣的。

LXD可以從一臺本地機器擴展到幾千臺遠程機器。與Docker類似,它是基于鏡像的,所有更流行的Linux發行版都可以使用鏡像。Ubuntu的公司Canonical正在資助LXD的開發,因此它將始終運行在Ubuntu以及其他類似Linux操作系統的最新版本上。LXD可以與OpenNebula和OpenStack標準無縫集成。

從技術上講,LXD是站在LXC的肩膀上(兩者都使用相同的liblxc庫和Go語言創建容器),但LXD的目標是改善用戶體驗。

Docker會永遠存在嗎?

Docker擁有1100萬開發者、700萬個應用程序和每月130億次的鏡像下載。如果僅僅說Docker仍然是領導,那就太輕描淡寫了。然而,在這篇文章中,我們已經看到,現在已經有許多產品可以取代Docker軟件棧的一個或多個部分,并且通常情況下沒有兼容性問題。而且與Docker提供的服務相比,其他軟件的主要目標是安全性。

 

責任編輯:未麗燕 來源: Dockone.io
相關推薦

2011-05-31 15:45:38

Android 游戲引擎 開源

2014-07-17 11:10:19

Android開源游戲引擎

2013-06-07 13:20:16

Android開發開源游戲引擎游戲開發

2020-09-21 09:00:41

Docker架構容器

2013-07-25 09:31:59

開源云計算

2022-03-13 10:48:52

容器Docker容器管理軟件

2016-04-05 09:50:22

OS XMac操作系統

2025-03-26 00:45:00

.NET開源C++

2019-12-16 15:16:29

工具代碼開發

2019-04-22 08:31:00

Docker容器工具

2015-06-04 09:22:09

2020-08-12 09:35:23

Docker工具開源

2018-08-02 09:00:48

2020-09-29 16:49:41

開源密碼管理器互聯網

2019-05-29 09:05:13

DockerDockly容器

2013-12-02 10:50:17

開源Linux容器Docker

2015-08-18 09:06:03

Windows 10開源應用程序

2015-06-12 10:30:44

數據可視化開源工具

2019-12-12 09:45:49

Docker容器漏洞攻擊

2020-10-14 17:46:59

Docker容器GUI工具
點贊
收藏

51CTO技術棧公眾號

国产中文一区二区三区| 91精品蜜臀在线一区尤物| 欧美久久电影| 福利一区三区| 亚洲国产精品专区久久| 在线免费观看黄色| 欧美小视频在线观看| 欧美艹逼视频| 亚洲精品美国一| 色成人亚洲网| 亚洲视频一二三区| 国产色视频在线播放| 久久婷婷国产综合精品青草| 国产一区二区四区| 国产一区二区三区视频在线播放| 亚洲高清视频在线观看| 一区二区高清| 欧美日韩精品免费在线观看视频| 在线电影一区| 精品一卡二卡三卡四卡日本乱码| 亚洲午夜黄色| 欧美高清性xxxxhd| 久久一二三四| 日韩免费电影一区二区| 久久午夜精品一区二区| 日本欧美色综合网站免费| 丝袜美腿成人在线| 黄色网址在线免费看| 成人做爰69片免费看网站| 成人一区二区免费视频| 国产日产精品一区| 黄网站免费观看| 色婷婷av一区二区三区软件| 在线免费av网站| 亚洲加勒比久久88色综合| 精品人人视频| 久久6免费高清热精品| 免费精品国产| 国产精品国产三级欧美二区| 日日欢夜夜爽一区| 国产精品88久久久久久妇女| 久久人人爽人人爽| 一级片免费视频| 制服丝袜亚洲播放| 久久免费影院| 成人欧美一区二区三区在线 | 色综合av在线| 羞羞网站在线免费观看| 国产一区二区三区丝袜| 啪啪激情综合网| 99在线观看视频网站| 久久99国产精品尤物| 欧美日韩一区二区三区69堂| 日本道精品一区二区三区| 国产99在线观看| 久久乐国产精品| 亚洲精品一级| 日韩精品―中文字幕| 亚洲一区二区三区三| 麻豆影视在线观看_| 日韩中文字幕免费视频| 99精品综合| www.国产二区| 欧美日韩国产综合视频在线观看中文| 欧美xxxx免费虐| 欧美亚洲日本黄色| 日韩精品成人一区二区在线| 色国产在线视频| 欧美一区二区三区日韩| 国产精品黄网站| 神马影院一区二区| 美女视频网站久久| 一级片在线观看| 久久久久久国产三级电影| 日韩中文首页| 黄页网址大全在线播放| 国产激情片在线观看| 亚洲乱码国产乱码精品精可以看| 2021天堂中文幕一二区在线观| 欧美最顶级丰满的aⅴ艳星| 狠狠色狠狠色综合| av资源网在线观看| 亚洲午夜激情免费视频| 精品视频一区二区三区四区五区| 亚洲永久在线观看| 在线视频综合导航| 99欧美精品| 国产一区不卡在线观看| 中文字幕综合网| 亚洲高清黄色| 欧美精品欧美精品系列c| 国产精品的网站| 国产成人午夜性a一级毛片| 国产一区不卡在线观看| 亚洲老司机在线| 国产一区 二区| 国产av第一区| 日韩欧美综合一区| 天天射天天综合网| 黄色资源在线看| 欧美精品激情在线| 不卡电影一区二区三区| gogo高清在线播放免费| 欧美小视频在线| 久久精品国产99国产| 国产三级在线| yellow视频在线观看一区二区| 一本色道**综合亚洲精品蜜桃冫| 电影天堂最新网址| 中文字幕一精品亚洲无线一区 | 亚洲国产私拍精品国模在线观看| 亚洲一二三区视频| 亚洲春色综合另类校园电影| 91久久精品一区二区三区| 欧洲乱码伦视频免费| 欧美精品性生活| 欧美成人一二三| 成人网在线免费视频| 欧美国产大片| 在线播放 亚洲| 欧美不卡视频一区| 日本中文字幕一区二区视频| 宅男噜噜99国产精品观看免费| 国产一区在线免费| 欧美另类久久久品| 欧美国产一级| 午夜刺激在线| 欧美视频一区二区三区四区| 国产51人人成人人人人爽色哟哟| 国产精品无av码在线观看| 国产亚洲午夜高清国产拍精品 | 亚洲国产成人私人影院tom| 一二三区精品福利视频| 久久久久久一区二区| zzzwww在线看片免费| 日韩综合视频在线观看| 一区二区网站| 国产v亚洲v天堂无码久久久| 欧美成人激情视频| 国产亚洲精品aa午夜观看| 免费看日产一区二区三区| 十八禁视频网站在线观看| 久久久精品在线观看| 久久久久久久免费视频了| 一区二区在线视频观看| 亚州av影院| 成人免费午夜电影| 精品视频一区 二区 三区| 日本不卡视频在线| 日韩欧美一区二区三区免费观看 | 欧美美女在线| 一二三四中文在线| 国产99在线免费| 日韩一级黄色大片| 国产馆精品极品| 精品久久国产一区| 九七影院理论片| 97se视频在线观看| 欧美一级一区二区| 国产成人av网站| 99精品国产高清一区二区麻豆| 手机看片1024久久| 5566中文字幕一区二区| 欧美大片免费久久精品三p| 成人中文字幕电影| 希岛爱理av免费一区二区| 四虎在线观看| 精品毛片久久久久久| 日韩不卡在线观看| 久久九九久精品国产免费直播| 人人狠狠综合久久亚洲婷| 超碰免费97在线观看| 欧美日韩激情四射| 日韩免费不卡av| 日韩欧美国产一区二区三区| 久久蜜桃av一区精品变态类天堂| 日本一区二区高清不卡| www在线免费观看视频| 北条麻妃在线视频观看| 国产精品小说在线| 亚洲成人久久久| 亚洲天堂a在线| 国产手机视频一区二区| 日韩三区四区| 精品乱码一区二区三四区视频| 日本丰满大乳奶| 国产成人av网址| 欧美精品一区二区三| 国产精品美女久久久久久久久久久| 欧美天堂亚洲电影院在线观看| 国产小视频免费在线网址| 日韩成人精品一区二区三区| 亚洲午夜激情在线| av男人天堂一区| 西野翔中文久久精品国产| 欧美猛烈性xbxbxbxb| 97在线免费公开视频| 久久精品国产综合精品| 欧美丰满老妇厨房牲生活| 7799精品视频|