久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Docker 生態(tài)概覽

 太極混元天尊 2018-05-11

Docker 和容器技術(shù)的發(fā)展可謂是日新月異,,本文試圖以全局的視角來梳理一下 docker 目前的生態(tài)圈。既然是概覽,所以不會涉及具體的技術(shù)細節(jié),。

Docker 自從發(fā)布以來發(fā)生了很多的變化,,并且有些方面的變化還非常大。對于技術(shù)愛好者來說,,我們喜歡酷斃新的功能,,喜歡舊功能的改善。但對于生產(chǎn)環(huán)境中的使用者來說,,其實不太喜歡這種頻繁的變化,!不管怎樣,我們都有必要理清 docker 生態(tài)系統(tǒng)中的眾多概念及它們之間的關(guān)系,,以及 docker 自誕生至今(2018 年)的里程碑性事件,。

百花齊放的容器技術(shù)

雖然 docker 把容器技術(shù)推向了巔峰,但容器技術(shù)卻不是從 docker 誕生的,。實際上,,容器技術(shù)連新技術(shù)都算不上,因為它的誕生和使用確實有些年頭了,。下面的一串名稱肯能有的你都沒有聽說過,,但它們的確都是容器技術(shù)的應(yīng)用:

  • Chroot Jail

  • FreeBSD Jails

  • Linux VServer

  • Solaris Containers

  • OpenVZ

  • Process Containers

  • LXC

  • Warden

  • LMCTFY

  • Docker

  • RKT

Chroot Jail

就是我們常見的 chroot 命令的用法。它在 1979 年的時候就出現(xiàn)了,,被認為是最早的容器化技術(shù)之一,。它可以把一個進程的文件系統(tǒng)隔離起來。

The FreeBSD Jail

Freebsd Jail 實現(xiàn)了操作系統(tǒng)級別的虛擬化,,它是操作系統(tǒng)級別虛擬化技術(shù)的先驅(qū)之一,。

Linux VServer

使用添加到 Linux 內(nèi)核的系統(tǒng)級別的虛擬化功能實現(xiàn)的專用虛擬服務(wù)器。

Solaris Containers

它也是操作系統(tǒng)級別的虛擬化技術(shù),,專為 X86 和 SPARC 系統(tǒng)設(shè)計,。Solaris 容器是系統(tǒng)資源控制和通過 '區(qū)域' 提供邊界隔離的組合。

OpenVZ

OpenVZ 是一種 Linux 中操作系統(tǒng)級別的虛擬化技術(shù),。 它允許創(chuàng)建多個安全隔離的 Linux 容器,,即 VPS。

Process Containers

Process 容器由 Google 的工程師開發(fā),,一般被稱為 cgroups,。

LXC

LXC 又叫 Linux 容器,這也是一種操作系統(tǒng)級別的虛擬化技術(shù),,允許使用單個 Linux 內(nèi)核在宿主機上運行多個獨立的系統(tǒng),。

Warden

在最初階段,Warden 使用 LXC 作為容器運行時,。 如今已被 CloudFoundy 取代,。

LMCTFY

LMCTY 是 Let me contain that for you 的縮寫,。它是 Google 的容器技術(shù)棧的開源版本。Google 的工程師一直在與 docker 的 libertainer 團隊合作,,并將 libertainer 的核心概念進行抽象并移植到此項目中,。該項目的進展不明,估計會被 libcontainer 取代,。

Docker

Docker 是一個可以將應(yīng)用程序及其依賴打包到幾乎可以在任何服務(wù)器上運行的容器的工具。

RKT

RKT 是 Rocket 的縮寫,,它是一個專注于安全和開放標(biāo)準(zhǔn)的應(yīng)用程序容器引擎,。

正如我們所看到的,docker 并不是第一個容器化技術(shù),,但它的確是最知名的一個,。Docker 誕生于 2013 年,并獲得了快速的發(fā)展,,下圖展示了當(dāng)前 docker 平臺中的組成部分(此圖來自互聯(lián)網(wǎng)):

Docker 立于系統(tǒng)基礎(chǔ)架構(gòu)之上并為應(yīng)用程序提供支撐,。它由稱為 containerd 的行業(yè)標(biāo)準(zhǔn)容器運行時組件,稱為 docker swarm 的本地編排工具,,以及開源的 docker community 版本和提供商業(yè)管理服務(wù)的 docker enterprise 版組成,。

與docker相關(guān)的重要概念
 
Docker & LXC

Docker 的第一個執(zhí)行環(huán)境是 LXC,但從版本 0.9 開始 LXC 被 libcontainer 取代,。

Docker & libcontainer

Libcontainer 為 docker 封裝了 Linux 提供的基礎(chǔ)功能,,如 cgroups,namespaces,,netlink 和 netfilter 等,,如下圖所示(此圖來自互聯(lián)網(wǎng)):

2015 - Docker & runC

2015 年,docker 發(fā)布了 runC,,一個輕量級的跨平臺的容器運行時,。 這基本上就是一個命令行小工具,可以直接利用 libcontainer 運行容器,,而無需通過 docker engine,。runC 的目標(biāo)是使標(biāo)準(zhǔn)容器在任何地方都可用。

Docker & The Open Containers Initiative(OCI)

OCI 是一個輕量級的開放式管理架構(gòu),,由 docker,,CoreOS 和容器行業(yè)的其他領(lǐng)導(dǎo)廠商于 2015 年建立。它維護一些項目,,如 runC ,,還有容器運行時規(guī)范和鏡像規(guī)范。OCI 的目的是圍繞容器行業(yè)制定標(biāo)準(zhǔn),,比如使用 docker 創(chuàng)建的容器可以在任何其他容器引擎上運行,。

2016 - Docker & containerd

2016年,,Docker 分拆了 containerd,并將其捐贈給了社區(qū),。將這個組件分解為一個單獨的項目,,使得 docker 將容器的管理功能移出 docker 的核心引擎并移入一個單獨的守護進程(即 containerd)。

Docker Components

分拆完 containerd 后,,docker 各組件的關(guān)系如下圖所示(此圖來自互聯(lián)網(wǎng)):

至此,,docker 從一個單一的軟件演變成了一套相互獨立的組件和項目。

Docker 如何運行一個容器,?

  1. Docker 引擎創(chuàng)建容器映像

  2. 將容器映像傳遞給 containerd

  3. containerd 調(diào)用 containerd-shim

  4. containerd-shim 使用 runC 來運行容器

  5. containerd-shim 允許運行時(本例中為 runC)在啟動容器后退出

該模型帶來的最大好處是在升級 docker 引擎時不會中斷容器的運行,。

2017-容器成為主流

2017 年是容器成為主流技術(shù)的一年,這就是為什么 docker 在 Linux 之外支持眾多平臺的原因(Docker for Mac,,Docker for Windows,,Docker for AWS,GCP 等),。

當(dāng)容器技術(shù)被大眾接受后,,Docker 公司意識到需要新的生產(chǎn)模型,這就是為什么它開始 Moby 項目,。

Moby Project

Moby 項目開啟了實現(xiàn)協(xié)作和生產(chǎn)的新篇章,。它是一個開源項目,旨在推進軟件的容器化,。Moby 項目提供了數(shù)十個樂高積木一樣的組件以及將它們組裝成定制的基于容器的系統(tǒng)的框架,。

Docker 生產(chǎn)模型像任何其他常見的單個開源項目一樣開始(此圖來自互聯(lián)網(wǎng)):

進而將單個項目拆分為不同的開放組件(此圖來自互聯(lián)網(wǎng)):

然后進化到可以共享這些組件以及組件集合(assembly)的模型(此圖來自互聯(lián)網(wǎng)):

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多