www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > 架構(gòu)師社區(qū)
[導(dǎo)讀]多年前的一個(gè)夜晚,風(fēng)雨大作,一個(gè)名叫Docker的年輕人來到Linux帝國(guó)拜見帝國(guó)的長(zhǎng)老?!癓inux長(zhǎng)老,天下程序員苦于應(yīng)用部署久矣,我要改變這一現(xiàn)狀,希望長(zhǎng)老你能幫幫我” 長(zhǎng)老回答:“哦,小小年紀(jì),口氣不小,先請(qǐng)入座,你有何所求,愿聞其詳”Docker坐下后開始侃侃而談:“當(dāng)今天下,應(yīng)用開發(fā)、測(cè)試、部署,各種庫(kù)的依賴紛繁復(fù)雜,再加上版本之間的差異,經(jīng)常出現(xiàn)在開發(fā)環(huán)境運(yùn)行正常,而到測(cè)試環(huán)境和線上環(huán)境就出問題的現(xiàn)象,程序員們飽受此苦,是時(shí)候改變這一狀況了。”

程序員受苦久矣

多年前的一個(gè)夜晚,風(fēng)雨大作,一個(gè)名叫Docker的年輕人來到Linux帝國(guó)拜見帝國(guó)的長(zhǎng)老。

還不懂Docker?一個(gè)故事安排的明明白白!

“Linux長(zhǎng)老,天下程序員苦于應(yīng)用部署久矣,我要改變這一現(xiàn)狀,希望長(zhǎng)老你能幫幫我”

長(zhǎng)老回答:“哦,小小年紀(jì),口氣不小,先請(qǐng)入座,你有何所求,愿聞其詳”

Docker坐下后開始侃侃而談:“當(dāng)今天下,應(yīng)用開發(fā)、測(cè)試、部署,各種庫(kù)的依賴紛繁復(fù)雜,再加上版本之間的差異,經(jīng)常出現(xiàn)在開發(fā)環(huán)境運(yùn)行正常,而到測(cè)試環(huán)境和線上環(huán)境就出問題的現(xiàn)象,程序員們飽受此苦,是時(shí)候改變這一狀況了。”

還不懂Docker?一個(gè)故事安排的明明白白!

Docker回頭看了一眼長(zhǎng)老接著說到:“我想做一個(gè)虛擬的容器,讓應(yīng)用程序們運(yùn)行其中,將它們需要的依賴環(huán)境整體打包,以便在不同機(jī)器上移植后,仍然能提供一致的運(yùn)行環(huán)境,徹底將程序員們解放出來!”

Linux長(zhǎng)老聽聞,微微點(diǎn)頭:“年輕人想法不錯(cuò),不過聽你的描述,好像虛擬機(jī)就能解決這個(gè)問題。將應(yīng)用和所依賴的環(huán)境部署到虛擬機(jī)中,然后做個(gè)快照,直接部署虛擬機(jī)不就可以了嗎?”

Docker連連搖頭說到:“長(zhǎng)老有所不知,虛擬機(jī)這家伙笨重如牛,體積又大,動(dòng)不動(dòng)就是以G為單位的大小,因?yàn)樗锩嬉\(yùn)行一個(gè)完整的操作系統(tǒng),所以跑起來格外費(fèi)勁,慢就不說了,還非常占資源,一臺(tái)機(jī)器上跑不了幾臺(tái)虛擬機(jī)就把性能拖垮了!而我想要做一個(gè)輕量級(jí)的虛擬容器,只提供一個(gè)運(yùn)行環(huán)境,不用運(yùn)行一個(gè)操作系統(tǒng),所有容器中的系統(tǒng)內(nèi)核還是和外面的宿主機(jī)共用的,這樣就可以批量復(fù)制很多個(gè)容器,輕便又快捷

還不懂Docker?一個(gè)故事安排的明明白白!

Linux長(zhǎng)老站了起來,來回踱步了幾圈,思考片刻之后,忽然拍桌子大聲說到:“真是個(gè)好想法,這個(gè)項(xiàng)目我投了!”

Docker眼里見光,喜上眉梢,“這事還真離不開長(zhǎng)老的幫助,要實(shí)現(xiàn)我說的目標(biāo),對(duì)進(jìn)程的管理隔離都至關(guān)重要,還望長(zhǎng)老助我一臂之力!”

“你稍等”,Linux長(zhǎng)老轉(zhuǎn)身回到內(nèi)屋。沒多久就出來了,手里拿了些什么東西。

“年輕人,回去之后,盡管放手大干,我賜你三個(gè)錦囊,若遇難題,可依次拆開,必有大用”

還不懂Docker?一個(gè)故事安排的明明白白!

Docker開心的收下了三個(gè)錦囊,拜別Linux長(zhǎng)老后,冒雨而歸。

錦囊1:chroot & pivot_root

受到長(zhǎng)老的鼓勵(lì),Docker充滿了干勁,很快就準(zhǔn)備啟動(dòng)他的項(xiàng)目。

作為一個(gè)容器,首要任務(wù)就是限制容器中進(jìn)程的活動(dòng)范圍——能訪問的文件系統(tǒng)目錄。決不能讓容器中的進(jìn)程去肆意訪問真實(shí)的系統(tǒng)目錄,得將他們的活動(dòng)范圍劃定到一個(gè)指定的區(qū)域,不得越雷池半步!

到底該如何限制這些進(jìn)程的活動(dòng)區(qū)域呢?Docker遇到了第一個(gè)難題。

苦思良久未果,Docker終于忍不住拆開了Linux長(zhǎng)老送給自己的第一個(gè)錦囊,只見上面寫了兩個(gè)函數(shù)的名字:chroot & pivot_root。

Docker從未使用過這兩個(gè)函數(shù),于是在Linux帝國(guó)四處打聽它們的作用。后來得知,通過這兩個(gè)函數(shù),可以修改進(jìn)程和系統(tǒng)的根目錄到一個(gè)新的位置。Docker大喜,長(zhǎng)老真是誠(chéng)不欺我!

有了這兩個(gè)函數(shù),Docker開始想辦法怎么來“偽造”一個(gè)文件系統(tǒng)來欺騙容器中的進(jìn)程。

還不懂Docker?一個(gè)故事安排的明明白白!

為了不露出破綻,Docker很聰明,用操作系統(tǒng)鏡像文件掛載到容器進(jìn)程的根目錄下,變成容器的rootfs,和真實(shí)系統(tǒng)目錄一模一樣,足可以以假亂真:

$?ls?/
bin?dev?etc?home?lib?lib64?mnt?opt?proc?root?run?sbin?sys?tmp?usr?var

錦囊2:namespace

文件系統(tǒng)的問題總算解決了,但是Docker不敢懈怠,因?yàn)樵谒睦?,還有一個(gè)大問題一直困擾著他,那就是如何把真實(shí)系統(tǒng)所在的世界隱藏起來,別讓容器中的進(jìn)程看到。

比如進(jìn)程列表、網(wǎng)絡(luò)設(shè)備、用戶列表這些,是決不能讓容器中的進(jìn)程知道的,得讓他們看到的世界是一個(gè)干凈如新的系統(tǒng)。

Docker心里清楚,自己雖然叫容器,但這只是表面現(xiàn)象,容器內(nèi)的進(jìn)程其實(shí)和自己一樣,都是運(yùn)行在宿主操作系統(tǒng)上面的一個(gè)個(gè)進(jìn)程,想要遮住這些進(jìn)程的眼睛,瞞天過海,實(shí)在不是什么容易的事情。

Docker想過用HOOK的方式,欺騙進(jìn)程,但實(shí)施起來工作太過復(fù)雜,兼容性差,穩(wěn)定性也得不到保障,思來想去也沒想到什么好的主意。

正在一籌莫展之際,Docker又想起了Linux長(zhǎng)老送給自己的錦囊,他趕緊拿了出來,打開了第二個(gè)錦囊,只見上面寫著:namespace。

Docker還是不解其中之意,于是又在Linux帝國(guó)到處打聽什么是namespace。

經(jīng)過一陣琢磨,Docker總算是明白了,原來這個(gè)namespace是帝國(guó)提供的一種機(jī)制,通過它可以劃定一個(gè)個(gè)的命名空間,然后把進(jìn)程劃分到這些命名空間中。

還不懂Docker?一個(gè)故事安排的明明白白!

而每個(gè)命名空間都是獨(dú)立存在的,命名空間里面的進(jìn)程都無法看到空間之外的進(jìn)程、用戶、網(wǎng)絡(luò)等等信息。

這不正是Docker想要的嗎?真是踏破鐵鞋無覓處,得來全不費(fèi)功夫!

Docker趕緊加班加點(diǎn),用上了這個(gè)namespace,將進(jìn)程的“視野”鎖定在容器規(guī)定的范圍內(nèi),如此一來,容器內(nèi)的進(jìn)程彷佛被施上了障眼法,再也看不到外面的世界。

錦囊3:CGroup

文件系統(tǒng)和進(jìn)程隔離的問題都解決了,Docker心里的石頭總算是放下了。心里著急著想測(cè)試自己的容器,可又好奇這最后一個(gè)錦囊寫的是什么,于是打開了第三個(gè)錦囊,只見上面寫著:CGroup。

這又是什么東西?Docker仍然看不懂,不過這一次管不了那么許多了,先運(yùn)行起來再說。

試著運(yùn)行了一段時(shí)間,一切都在Docker的計(jì)劃之中,容器中的進(jìn)程都能正常的運(yùn)行,都被他構(gòu)建的虛擬文件系統(tǒng)和隔離出來的系統(tǒng)環(huán)境給欺騙了,Docker高興壞了!

很快,Docker就開始在Linux帝國(guó)推廣自己的容器技術(shù),結(jié)果大受歡迎,收獲了無數(shù)粉絲,連nginxredis等一眾大佬都紛紛入駐。

然而,鮮花與掌聲的背后,Docker卻不知道自己即將大難臨頭。

這天,Linux帝國(guó)內(nèi)存管理部的人扣下了Docker準(zhǔn)備“處決”掉他,Docker一臉詫異的問到,“到底發(fā)生了什么事,為什么要對(duì)我下手?”

管理人員厲聲說到:“帝國(guó)管理的內(nèi)存快被一個(gè)叫Redis的家伙用光了,現(xiàn)在要挑選一些進(jìn)程來殺掉,不好意思,你中獎(jiǎng)了”

還不懂Docker?一個(gè)故事安排的明明白白!

Redis?這家伙不是我容器里的進(jìn)程嗎?Docker心中一驚!

“兩位大人,我認(rèn)識(shí)帝國(guó)的長(zhǎng)老,麻煩通融通融,找別人去吧,Redis那家伙,我有辦法收拾他”

沒想到他還認(rèn)識(shí)帝國(guó)長(zhǎng)老,管理人員猶豫了一下,就放了Docker到別處去了。

驚魂未定的Docker,思來想去,如果不對(duì)容器中的進(jìn)程加以管束,那簡(jiǎn)直太危險(xiǎn)了!除了內(nèi)存,還有CPU、硬盤、網(wǎng)絡(luò)等等資源,如果某個(gè)容器進(jìn)程霸占著CPU不放手,又或者某個(gè)容器進(jìn)程瘋狂寫硬盤,那遲早得連累到自己身上??磥肀仨毜脤?duì)這些進(jìn)程進(jìn)行管控,防止他們干出出格的事來。

這時(shí)候,他想起了Linux長(zhǎng)老的第三個(gè)錦囊:CGroup!說不定能解這燃眉之急。

經(jīng)過一番研究,Docker如獲至寶,原來這CGroup和namespace類似,也是Linux帝國(guó)的一套機(jī)制,通過它可以劃定一個(gè)個(gè)的分組,然后限制每個(gè)分組能夠使用的資源,比如內(nèi)存的上限值、CPU的使用率、硬盤空間總量等等。系統(tǒng)內(nèi)核會(huì)自動(dòng)檢查和限制這些分組中的進(jìn)程資源使用量。

還不懂Docker?一個(gè)故事安排的明明白白!

Linux長(zhǎng)老這三個(gè)錦囊簡(jiǎn)直太貼心了,一個(gè)比一個(gè)有用,Docker內(nèi)心充滿了感激。

隨后,Docker加上了CGroup技術(shù),加強(qiáng)了對(duì)容器中的進(jìn)程管控,這才松了一口氣。

在Linux長(zhǎng)老三個(gè)錦囊妙計(jì)的加持下,Docker可謂風(fēng)光一時(shí),成為了Linux帝國(guó)的大名人。

然而,能力越大,責(zé)任越大,讓Docker沒想到的是,新的挑戰(zhàn)還在后面。

特別推薦一個(gè)分享架構(gòu)+算法的優(yōu)質(zhì)內(nèi)容,還沒關(guān)注的小伙伴,可以長(zhǎng)按關(guān)注一下:

還不懂Docker?一個(gè)故事安排的明明白白!

還不懂Docker?一個(gè)故事安排的明明白白!

還不懂Docker?一個(gè)故事安排的明明白白!

長(zhǎng)按訂閱更多精彩▼

還不懂Docker?一個(gè)故事安排的明明白白!

如有收獲,點(diǎn)個(gè)在看,誠(chéng)摯感謝

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問題,請(qǐng)聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉