摘要:它目前由一個(gè)兩人的團(tuán)隊(duì)領(lǐng)導(dǎo)來自的和。因?yàn)槟壳暗募軜?gòu),應(yīng)用程序和服務(wù)是為正常的多程序操作系統(tǒng)環(huán)境設(shè)計(jì)的,所以需要去尋找一種以的方式來工作或使用工具來支持。是一個(gè)告訴如何從鏡像用特定的應(yīng)用程序來創(chuàng)建容器的腳本。公司受到風(fēng)投支持,積極投入市場。
這篇文章從兩個(gè)部分來探討LXC,LXC和Docker的容器托管,以及輕便的容器技術(shù)將取代虛擬技術(shù)的可能性。
LXC有可能會(huì)改變我們?nèi)绾芜\(yùn)行和縮放應(yīng)用程序。Dr.Rami Rosen 做過一個(gè)很棒的演示文稿,是關(guān)于LXC的前世今生,其中還不乏有趣的觀點(diǎn)和內(nèi)容。
兩者的概述容器技術(shù)獨(dú)立運(yùn)行并且從主機(jī)系統(tǒng)上封裝應(yīng)用程序工作量。把容器想象成可以安裝和運(yùn)行應(yīng)用程序的主機(jī)操作系統(tǒng)里面的操作系統(tǒng),從實(shí)用目的來講,它就像一個(gè)虛擬機(jī)。
LXC項(xiàng)目給不同配置和用戶空間應(yīng)用提供最小的容器操作樣本來管理容器生命周期, LXC項(xiàng)目的這個(gè)特性和Linux內(nèi)核使模仿機(jī)制能夠正常啟用。
便攜性容器技術(shù)將應(yīng)用從主機(jī)操作系統(tǒng)上解耦下來,摘錄該程序并且使之在任意支持LXC的系統(tǒng)上都實(shí)現(xiàn)輕便化。低調(diào)的說法就是:非常好用。用戶在這樣一個(gè)原始和最小庫的Linux操作系統(tǒng)上可以在容器里運(yùn)行任何程序(就像是在容器里運(yùn)行LAMP堆棧)。
因?yàn)閼?yīng)用程序和工作量是相對獨(dú)立的,所以用戶可以運(yùn)行多版本的語言,比如PHP,Python,Ruby,Apache,這些語言都可以共存,隱藏在容器里。實(shí)現(xiàn)云計(jì)算,就好比是這些例子和工作量都可以靈活的被移動(dòng)到別的系統(tǒng),復(fù)制,以及快速配置。
難道虛擬技術(shù)就做不到嗎?不不不,虛擬技術(shù)也可以做到,但是會(huì)有一定程度的性能損失,靈活度也會(huì)下降。容器技術(shù)不是模仿硬件層次,而是在Linux內(nèi)核里使用cgroup和namespaces來打造輕便的、將近裸機(jī)速度的虛擬技術(shù)操作系統(tǒng)環(huán)境。因?yàn)椴皇翘摂M化存儲(chǔ),所以容器技術(shù)不會(huì)管底層存儲(chǔ)或者文件系統(tǒng),而是你放哪里,它操作哪里。
這從根本上改變了我們?nèi)绾翁摂M化工作負(fù)載和應(yīng)用程序,因?yàn)槿萜魉俣缺扔布摂M化技術(shù)更快,更加便捷,彈性擴(kuò)容的更加高效,只是它的工作負(fù)載要求操作系統(tǒng),而不是Linux或特定的Linux內(nèi)核版本。
那VMWare就這樣玩完了?沒那么快!虛擬技術(shù)相對成熟,又有廣泛的工具,還有生態(tài)系統(tǒng)來支持它在不同環(huán)境下的配置。至于工作負(fù)載,它要求非Linux操作系統(tǒng),或者只能使用特定的核心虛擬化技術(shù)。
LXCLXC起源于cgroup和namespaces在Linux內(nèi)核方面的發(fā)展,它支持輕便的虛擬技術(shù)操作系統(tǒng)環(huán)境(容器技術(shù)),Daniel Lezcano和Serge Hallyn做了一些它的早期工作,這個(gè)可以追溯到2009年在IBM的時(shí)候。LXC系統(tǒng)提供工具來管理容器,先進(jìn)的網(wǎng)絡(luò)和存儲(chǔ)支持,還有最小容器操作系統(tǒng)模板的廣泛選擇。它目前由一個(gè)兩人的團(tuán)隊(duì)領(lǐng)導(dǎo):來自Ubuntu的Stephane Graber和Serge Hallyn。LXC是由Ubuntu支持的。
如何區(qū)分他們生產(chǎn)Docker的目的是為了盡可能減少容器中運(yùn)營的程序,減少到只運(yùn)營單個(gè)程序,并且通過Docker來管理這個(gè)程序。有了Docker,可以從底層應(yīng)用程序通過Docker來配置,網(wǎng)絡(luò),存儲(chǔ)和編排。LXC用正常操作系統(tǒng)環(huán)境回避那個(gè)問題,并且因此可以快速兼容所有應(yīng)用程序和工具,以及任意管理和編制層次,來替代虛擬機(jī)。除此之外,Docker使用層次,禁用存儲(chǔ)持久性。LXC支持AUFS層次和覆蓋,對COW克隆和用brtfs、ZFS、LVM Thin快照廣泛支持,并且將選擇留給用戶。LXC容器技術(shù)里的分散存儲(chǔ)是綁定安裝的,來為用戶達(dá)到主機(jī)或者另一個(gè)容器。Docker和LXC都設(shè)置了一個(gè)默認(rèn)的NAT網(wǎng)絡(luò)。另外,Docker設(shè)置一個(gè)端口轉(zhuǎn)發(fā)到主機(jī)上,就會(huì)有一個(gè)-p標(biāo)記,比如“-p80:80”就是80從主機(jī)轉(zhuǎn)發(fā)到容器。有NAT,本地主機(jī)就可以直接通過IP訪問容器,外部服務(wù)需要的時(shí)候可以通過IPtable規(guī)則來簡單完成,當(dāng)外部服務(wù)被消耗的時(shí)候,只需要端口轉(zhuǎn)發(fā)就可以。至于為什么需要這么做,原因目前還不是很明確。要把事項(xiàng)復(fù)合起來,Docker只給了很少的IP和主機(jī)文件控制權(quán),所以不能給容器設(shè)置靜態(tài)IP,這對于IP的分配任務(wù)來說有點(diǎn)讓人疑惑。我們需要使用“--Links”標(biāo)記來連接容器,這個(gè)容器中要在被連接的容器中加一個(gè)入口在/etc/主機(jī)上。有了LXC,分配靜態(tài)IP,動(dòng)態(tài)IP,使用多網(wǎng)絡(luò)設(shè)備就簡單多了,可以使用/etc/hosts文件,基本上使用Linux網(wǎng)絡(luò)全棧是沒有限制的。您希望在主機(jī)上連接容器嗎?用戶使用GRE,L2TPV3或者VXLAN來快速設(shè)置層次,或者是任意的在使用的網(wǎng)絡(luò)技術(shù)。LXC容器技術(shù)可以無縫運(yùn)行虛擬機(jī)運(yùn)行的一切。
DockerDocker是dotcloud也就是現(xiàn)在的Docker公司在2013年3月發(fā)布的,一開始是基于LXC項(xiàng)目來創(chuàng)建單個(gè)應(yīng)用程序容器。Docker現(xiàn)在已經(jīng)開發(fā)了他們自己的直接使用核心namespaces和cgroup的工具:lib container。
分層容器Docker最開始是基于LXC對Aufs的支持來建立分層容器,因?yàn)锳ufs可能無法被合并到核心中,所以現(xiàn)在對Brtfs、設(shè)備映射和覆蓋也添加支持,Docker容器技術(shù)是由基底鏡像構(gòu)成,當(dāng)提交變成Docker鏡像的時(shí)候會(huì)再加上一個(gè)分層面板。當(dāng)運(yùn)行一個(gè)鏡像的時(shí)候,它的復(fù)本就作為容器被啟動(dòng)了,在提交之前,它的任何數(shù)據(jù)都只是暫時(shí)的。每一個(gè)提交都是一個(gè)獨(dú)立的鏡像,所以可以從鏡像開始。我們在《如何用LXC覆蓋》里有一個(gè)指導(dǎo)說明,它給用戶描述了分層結(jié)構(gòu)是如何工作的。有了像Aufs或者覆蓋(他們在實(shí)施上、性能上有區(qū)別,而且支持一定數(shù)量的低一點(diǎn)的層次)這樣的文件系統(tǒng)的聯(lián)合,較低一點(diǎn)的層次是只讀的,而較高一點(diǎn)的層次是在運(yùn)行的時(shí)候是可讀可寫的。在容器內(nèi)容中通常是基底操作系統(tǒng),但是也不是很必要,而上層的圖層面板則是由你來修改。雖然圖層面板的想法聽起來很不錯(cuò),但是分層文件系統(tǒng)在技術(shù)上仍然是不成熟的,在使用圖層面板的時(shí)候,還有有一個(gè)固有的復(fù)雜性和性能的損失。《陷入圖層面板》是一個(gè)真實(shí)的冒險(xiǎn)實(shí)例,大家不妨看看。
單個(gè)應(yīng)用程序容器Docker將容器技術(shù)限制到只能運(yùn)行單個(gè)進(jìn)程。Docker的底層鏡像操作系統(tǒng)模版不是為運(yùn)行多個(gè)應(yīng)用程序,進(jìn)程設(shè)計(jì),也不是為像init,cron,syslog,ssh等服務(wù)而設(shè)計(jì)。我們來看早期的東西,它介紹了日復(fù)一日的用戶場景有一定的復(fù)雜性。因?yàn)槟壳暗募軜?gòu),應(yīng)用程序和服務(wù)是為正常的多程序操作系統(tǒng)環(huán)境設(shè)計(jì)的,所以需要去尋找一種以Docker的方式來工作或使用工具來支持Docker。拿一個(gè)簡單的應(yīng)用程序舉個(gè)例子,比如WordPress。你可能需要建立3個(gè)容器來互相消耗服務(wù)。PHP容器,Nginx容器和MySQL容器加上2個(gè)分別用來放MysqlDB和WordPress文件持久性數(shù)據(jù)的容器。然后通過適當(dāng)?shù)臋?quán)限將WordPress文件安裝成PHP-FPM和Nginx兩種語言都可用,然后為了把東西弄得更加讓人興奮,找出一種能夠讓容器在本地網(wǎng)絡(luò)上可以互相交流的方法,不需要對網(wǎng)絡(luò)不定時(shí)的控制,也不需要Docker后臺(tái)程序設(shè)置IP!但是我們還沒有計(jì)算WordPress賬戶管理的cron和Email。哎!為了在Docker里運(yùn)行多個(gè)程序,你需要shell 腳本,或者是一個(gè)分開的程序管理,比如runit或者管理器。但是Docker生態(tài)系統(tǒng)會(huì)將之視為“反模式“,而且Docker的整個(gè)架構(gòu)是建立在運(yùn)行單個(gè)程序的容器上的。
代碼庫Docker為用戶提供公共或者個(gè)人push和pull鏡像的數(shù)據(jù)庫。這個(gè)跟Flockport app Store為用戶使用容器做好準(zhǔn)備有點(diǎn)相似。這樣做,對用戶來說,分享和分布應(yīng)用程序就很簡單了。
DockerfileDockerfile是一個(gè)告訴Docker如何從鏡像用特定的應(yīng)用程序來創(chuàng)建容器的腳本。跟使用特定的安裝好的應(yīng)用程序通過bash腳本來創(chuàng)建一個(gè)LXC容器相似。
跟LXC拉開距離LXC的特點(diǎn)需要通過Docker團(tuán)隊(duì)來重載實(shí)現(xiàn),使之在Docker中可用,比如LXC現(xiàn)在支持讓非根用戶創(chuàng)建和配置容器的未經(jīng)授權(quán)容器,LXC現(xiàn)在還致力于實(shí)時(shí)遷移和多主機(jī)管理。這些對容器來說都是很大的進(jìn)步,也為更好的安全性,多租戶工作量以及虛擬平價(jià)鋪平了道路。Docker還不支持這些。隨運(yùn)行容器的方法沒有對錯(cuò)之分,容器怎么用主要取決于用戶,docker方法是獨(dú)特的,而且還將在每個(gè)階段自定義途徑成為必須途徑,并以此來找到Docker的方法從安裝和運(yùn)行應(yīng)用程序來完成任務(wù),完成彈性擴(kuò)容。
前景虛擬技術(shù)通過操作系統(tǒng)和應(yīng)用程序被凍結(jié)在一個(gè)狀態(tài),使云計(jì)算成為可能,并將之轉(zhuǎn)化為可以從硬件和操作系統(tǒng)上輕易轉(zhuǎn)移。操作系統(tǒng)添加了很多:速度,靈活性以及可移動(dòng)性,擴(kuò)大了潛在價(jià)值。Docker擅長用dockerfile和提交將容器和覆蓋文件系統(tǒng)包裝到一個(gè)友好的開發(fā)者模型中。只有當(dāng)你在一臺(tái)多帶帶的筆記本上操作的時(shí)候,像托管,監(jiān)視,存儲(chǔ)和網(wǎng)絡(luò)這樣的彈性擴(kuò)容問題才會(huì)讓這個(gè)模型復(fù)雜脆弱。另一方面,操作系統(tǒng)容器在操作系統(tǒng)性能上跟虛擬機(jī)的相似,這使得運(yùn)用目前的工具,來集成到正常和分布式系統(tǒng)更加簡單,不需要開發(fā)任何多帶帶的工具。Docker公司受到風(fēng)投支持,積極投入市場。眾多用戶在Docker的內(nèi)容中聽說到容器技術(shù),但是并不清楚操作系統(tǒng)容器技術(shù)以及自己所熟悉使用的。可以看到,用戶單純希望運(yùn)行容器,就好像運(yùn)行一個(gè)輕量級(jí)的虛擬機(jī)一樣,他們拼命的想做到運(yùn)用單個(gè)應(yīng)用程序的容器技術(shù),分層結(jié)構(gòu)和持久存儲(chǔ)。如果將工作量從虛擬機(jī)轉(zhuǎn)移需要額外的工程工作量,那么很多大規(guī)模用戶和企業(yè)根本不會(huì)考慮,而且轉(zhuǎn)移之后,將跟他們其他基礎(chǔ)設(shè)施的網(wǎng)絡(luò),存儲(chǔ)和托管都不兼容。LXC就是這樣獲得承認(rèn)的,不是固執(zhí)己見,它有容器技術(shù)所有平行計(jì)算的優(yōu)點(diǎn)——從虛擬機(jī)無縫過渡到LXC,而不需要架構(gòu)師重新架構(gòu),這真是一個(gè)不可思議的價(jià)值主張。
(如果需要轉(zhuǎn)載,請聯(lián)系我們哦,尊重知識(shí)產(chǎn)權(quán)人人有責(zé))
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/26529.html
摘要:一般的硬件虛擬化方法給出的方法是,而給出的方法是,更細(xì)一點(diǎn)講就是。在中,并不能像硬件虛擬化方案一樣能夠定義能力,但是能夠定義輪轉(zhuǎn)的優(yōu)先級(jí),因此具有較高優(yōu)先級(jí)的進(jìn)程會(huì)更可能得到運(yùn)算。 本文簡單介紹docker使用到的部分核心技術(shù),但不做深入探究,因?yàn)槊恳粋€(gè)技術(shù)都是一個(gè)獨(dú)立的項(xiàng)目,有機(jī)會(huì)再分別詳細(xì)介紹。 來源地址:http://www.infoq.com/cn/articles/docke...
摘要:獲取阿里云加速器地址進(jìn)入登錄阿里云進(jìn)入后臺(tái)配置加速器點(diǎn)擊后就會(huì)重啟并應(yīng)用配置的鏡像地址了檢查加速器是否生效配置加速器之后,如果拉取鏡像仍然十分緩慢,請手動(dòng)檢查加速器配置是否生效,在命令行執(zhí)行,如果從結(jié)果中看到了如下內(nèi)容,說明配置成功。 一、為什么要使用Docker以及與虛擬機(jī)的區(qū)別? 1.1 為什么要使用Docker Docker的思想來自于集裝箱。集裝箱解決了什么問題?在一艘大船上,...
摘要:近期非常火熱,無論是從上的代碼活躍度,還是宣布在中正式支持,都給業(yè)界一個(gè)信號(hào),這是一項(xiàng)創(chuàng)新型的技術(shù)解決方案。可以簡化部署多種應(yīng)用實(shí)例工作,比如應(yīng)用后臺(tái)應(yīng)用數(shù)據(jù)庫應(yīng)用大數(shù)據(jù)應(yīng)用比如集群消息隊(duì)列等等都可以打包成一個(gè)部署。 1. docker是什么 Docker is an open-source engine that automates the deployment of any...
摘要:執(zhí)行容器內(nèi)部運(yùn)行的執(zhí)行工作作為容器的執(zhí)行驅(qū)動(dòng),負(fù)責(zé)創(chuàng)建容器運(yùn)行命名空間,負(fù)責(zé)容器資源使用的統(tǒng)計(jì)與限制,負(fù)責(zé)容器內(nèi)部進(jìn)程的真正運(yùn)行等。典型的在啟動(dòng)后,首先將設(shè)置為進(jìn)行一系列檢查然后將其切換為供用戶使用。 在https://segmentfault.com/a/11... 容器,隔離,云的概述。這篇對其中用途廣泛的docker,k8s做詳細(xì)介紹,并給出云搭建的生態(tài)環(huán)境體系。 docker ...
摘要:執(zhí)行容器內(nèi)部運(yùn)行的執(zhí)行工作作為容器的執(zhí)行驅(qū)動(dòng),負(fù)責(zé)創(chuàng)建容器運(yùn)行命名空間,負(fù)責(zé)容器資源使用的統(tǒng)計(jì)與限制,負(fù)責(zé)容器內(nèi)部進(jìn)程的真正運(yùn)行等。典型的在啟動(dòng)后,首先將設(shè)置為進(jìn)行一系列檢查然后將其切換為供用戶使用。 在https://segmentfault.com/a/11... 容器,隔離,云的概述。這篇對其中用途廣泛的docker,k8s做詳細(xì)介紹,并給出云搭建的生態(tài)環(huán)境體系。 docker ...
閱讀 1591·2021-11-16 11:44
閱讀 7468·2021-09-22 15:00
閱讀 4484·2021-09-02 10:20
閱讀 1949·2021-08-27 16:20
閱讀 2391·2019-08-26 14:00
閱讀 2910·2019-08-26 11:44
閱讀 1641·2019-08-23 18:33
閱讀 1859·2019-08-22 17:28