Basics – Docker, Containers, Hypervisors, CoreOS

Basics – Docker, Containers, Hypervisors, CoreOS

容器在操作系統(tǒng)級虛擬化,虛擬機管理程序在硬件級虛擬化。

虛擬機管理程序從硬件抽象操作系統(tǒng),容器從操作系統(tǒng)抽象應用程序。

虛擬機管理程序(Hypervisors)消耗每個實例的存儲空間。容器(Containers)使用單個存儲空間,每層都使用較小的增量,因此效率更高。

容器可以在不到500毫秒的時間內(nèi)啟動和準備應用程序,并為快速擴展創(chuàng)造新的設計機會。根據(jù)存儲速度,虛擬機管理程序通常根據(jù)操作系統(tǒng)啟動20秒。

容器具有內(nèi)置的和高價值的云編排api。hypervisor具有較低的質量api,它們具有有限的云編排值。

Containers (容器)

有許多Linux容器技術,但它們都使用相同的原理,將應用程序空間隔離在操作系統(tǒng)中。

LXC – Linux Containers

LXC是Linux內(nèi)核遏制功能的用戶空間界面。 通過強大的API和簡單的工具,Linux用戶可以輕松創(chuàng)建和管理系統(tǒng)或應用程序容器。

雖然Docker現(xiàn)在在LMCTFY中使用自己的容器格式libcompiler或其他容器,如Google容器 - Github / google / lmctfy

Docker是管理LXC容器的軟件工具鏈。這似乎與vSphere vCenter管理大量ESXi管理程序實例的方式類似。在操作上它是非常不同的,更強大的。

Docker是開發(fā)人員和系統(tǒng)管理員構建、發(fā)布和運行分布式應用程序的開放平臺。Docker由Docker引擎、可移植的輕量級運行時和打包工具以及Docker Hub組成,它是用于共享應用程序和自動化工作流的云服務,Docker使應用程序能夠快速地從組件中組裝起來,消除了開發(fā)、QA和生產(chǎn)環(huán)境之間的摩擦。因此,它可以更快地發(fā)送和運行相同的應用程序,在筆記本電腦、數(shù)據(jù)中心vm和任何云上運行。

在Docker容器中執(zhí)行的進程與在主機操作系統(tǒng)或其他Docker容器中運行的進程隔離。然而,所有進程都在同一個內(nèi)核中執(zhí)行。Docker利用LXC為容器提供了不同的名稱空間,這是一個在Linux內(nèi)核中已經(jīng)存在了5年的技術,并且被認為相當成熟。它還使用了在Linux內(nèi)核中更長的控制組來實現(xiàn)資源審計和限制。

然而,當你花更多的時間在容器上時,你就能理解細微但重要的區(qū)別。Docker很好地利用了集裝箱化的優(yōu)點,從而實現(xiàn)了集中的目的,即輕量級的打包和應用程序的部署。

  • Docker容器有一個API,允許對容器進行外部管理。Docker的核心價值主張。
  • 容器的開銷比vm (KVM & ESX)要少,而且通常比在hypervisor中運行相同的應用程序要快。
  • 大多數(shù)Linux應用程序可以在Docker容器中運行。

Clustering and Multiples (集群和倍數(shù))

  • 容器促進了跨多個容器傳播應用程序的思想。
  • 我認為這部分是因為容器往往受到定義的資源約束,但因為容器的部署很簡單。
  • 例如,在容器中部署HAProxy作為負載均衡器,然后將多個Tomcat /節(jié)點實例用于應用程序,這更有意義。在許多小實例中擴展負載非常適合云架構,因為云提供商的過載/過度訂閱會限制容器的峰值性能。
  • Docker及其姊妹產(chǎn)品與傳統(tǒng)的網(wǎng)絡服務沒有任何集成。使用傳統(tǒng)的負載平衡器和代理在這個系統(tǒng)中沒有任何意義。

Docker的價值

  • 容器虛擬化的框架。
  • 容器是持有應用程序的Linux實例。
  • Docker是以集裝箱的概念為基礎,以呈現(xiàn)標準化的方式呈現(xiàn)
  • 容器是很久以前的慣例,例如Solaris Zones和IBM LAPR等等。
  • 但是這些產(chǎn)品相對難以使用
  • Docker在容器周圍添加了一個包裝器,使它們易于使用。工具鏈用于自助服務。
  • 開發(fā)人員關心應用程序,操作人員關心容器/虛擬機管理程序/裸機。
  • 開源意味著沒有許可費用。

流程,工作流程和業(yè)務流程變更

Business Process

  • 開發(fā)人員可以在Docker容器中構建應用程序,然后將容器運送到持續(xù)集成服務器(ala Jenkins)。
  • 開發(fā)人員可以將應用程序打包到操作系統(tǒng)中。
  • Docker提供了強大的API,允許程序控制。我的意思是,API是Docker的核心。使用Puppet或Chef構建Docker鏡像可能不是最佳選擇
  • 有些人使用Ansible來自動化Docker。由于支持設備特定功能,Ansible在網(wǎng)絡方面頗受歡迎。

Workflow

  • 有成千上萬的鏡像是由Docker預先打包的。
  • 大多數(shù)鏡像都基于Ubuntu。
  • Docker編配平臺對于更復雜的應用來說非常重要,比如在基礎設施中通過智能容器放置的彈性、容錯、縮放等。(類似于在OpenStack中為虛擬機管理程序放置的云編排。
  • 像Decking,New Relic的Centurion和Google的Kubernetes等編排系統(tǒng)都旨在幫助集裝箱的部署和生命周期管理。
  • 還有很多很多。
  • Docker基礎鏡像將有“層”的應用程序添加到基本圖像。Union文件系統(tǒng)意味著只有該層的delta被添加到鏡像中。這大大減少了操作系統(tǒng)消耗的空間——在每個VM中都是相同的,為什么要在每個VM中復制它(然后讓存儲陣列去復制它)。

Infrastructure

  • 有它自己的存儲系統(tǒng)的delta圖像。當前的Union文件系統(tǒng),還有其他選項。并且一直是一些激烈爭論的話題。根文件系統(tǒng)擁有裝載Docker映像所需的所有內(nèi)容。
  • 每次您對Docker鏡像進行更改時,都會創(chuàng)建一個新圖層并將其標記為只讀。來自底層Docker鏡像的這種增量大大降低了存儲消耗。
  • 底層Docker映像中的每個增量都有很多圖層。
  • 然后,Docker鏡像從基礎鏡像構建而成
  • Docker可以運行裸機或在管理程序中運行。
  • LXC使用Linux特性“控制組”,它具有深入洞察容器資源消耗的理想副作用。

Linux容器依賴于控制組,它不僅跟蹤進程組,而且還公開了許多關于CPU、內(nèi)存和阻塞I/O使用的指標。我們將了解如何訪問這些度量,以及如何獲得網(wǎng)絡使用度量。這與“純”LXC容器以及Docker容器有關。

CoreOS

  • 許多網(wǎng)站一起討論CoreOS和Docker,但沒有強調差異。混亂讓人疑惑。
  • CoreOS是Chrome OS的一個分支,它通過使用通過Chromium OS免費提供的軟件開發(fā)工具包(SDK)作為基礎,同時添加新功能并定制它以支持用于服務器的硬件 - CoreOS - 維基百科,自由的百科全書

CoreOS沒有提供包管理器,它要求所有應用程序都在其容器內(nèi)運行,使用Docker和它的底層Linux容器(LXC)操作系統(tǒng)級的虛擬化技術,用于在單個控制主機(CoreOS實例)上運行多個獨立的Linux系統(tǒng)(容器)。這樣,資源分區(qū)通過多個隔離的用戶空間實例執(zhí)行,而不是使用管理程序和提供成熟的虛擬機。這種方法依賴于Linux內(nèi)核的cgroups功能,它提供了名稱空間隔離和限制、計算和隔離進程組的資源使用(CPU、內(nèi)存、磁盤I/O等)的能力。CoreOS -維基百科,免費的百科全書。

  • CoreOS是一個輕量級操作系統(tǒng),旨在提供作為操作系統(tǒng)的最小可行功能。
  • 我知道這構成了作為Docker容器內(nèi)的操作系統(tǒng)部署的堅實基礎。
  • 同時,它適用于托管Docker容器。 CoreOS在'Docker'下面,'在'它里面。這可能是我的困惑。
  • CoreOS似乎是一個Linux發(fā)行版,它具有用于服務發(fā)現(xiàn)和配置共享的軟件包,可協(xié)助進行大量部署。對群集應用程序有用。
  • Fleet是CoreOS的一種編排工具,并與具有自己的編排工具的Docker分開。

EcoSystem

  • Docker得到了來自成熟供應商的廣泛支持。對于一些圍觀者來說,這似乎很時尚,但在那里
  • VMware已經(jīng)采取強有力的防御措施來接納Docker
  • Docker非常適合PaaS,PaaS的應用程序是從開發(fā)平臺直接開發(fā)并部署到容器中的。許多PaaS平臺提供的CI / CD系統(tǒng)的部署方式不僅僅是“現(xiàn)場”,還包括測試,UAT等等。
  • 許多現(xiàn)有的托管公司可以輕松提供Docker托管服務,因為這些需求是現(xiàn)代Linux內(nèi)核和少量依賴項。我認為如果沒有編排工具,用戶必須提供它們,Docker托管功能就沒有多大用處。
  • 包括谷歌在內(nèi)的Docker周圍的大群人。
  • 希望采用DevOps的開發(fā)人員似乎對該產(chǎn)品有很強的吸引力。
  • SysAdmins轉向Docker管理和與開發(fā)人員集成的更有價值的上游功能對運營的影響很大。也就是說,如果PaaS系統(tǒng)未被使用。
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 一、剖析同行業(yè)排名前10名的公眾號 1、剖析公眾號為了什么? 方法論&實操點 2、剖析方法? A.公眾號 找號 a...
    貓肥處作閱讀 701評論 0 1
  • 從黎明的前奏開始, 漫無目的,開始書寫新的生活, 遠處寂靜無邊,群蜂休憩, 整座花園也休眠在季節(jié)的轉變中, 這一刻...
    阿票閱讀 226評論 1 4
  • BY Darling H 01 自那次遇見以后,好久都沒再見。好像所有人一下子都變得好忙,包括周子軒,包括noth...
    darlingH閱讀 306評論 0 1

友情鏈接更多精彩內(nèi)容