為什么用Docker

Docker自2013年問世以來蝎抽,就一直備受推崇。從剛開始只有少數(shù)人了解蜈敢,發(fā)展至今,在IT界成了家喻戶曉的工具汽抚。為什么Docker這么受歡迎抓狭,Docker能給技術(shù)人提供什么樣的幫助呢,這篇文章獲取能幫助你找到答案造烁。

Docker簡介

image.png

Docker是一個開源的容器引擎辐宾,實現(xiàn)輕量級的虛擬化解決方案狱从。為了便于大家更好的理解膨蛮,我們舉個例子說明叠纹。

假設(shè)你是一個養(yǎng)魚愛好者,有很多品種的魚想養(yǎng)敞葛。每種魚對水溫誉察,水質(zhì)的要求都不太一樣。通常你會選擇買很多個魚缸惹谐,并把每個魚缸調(diào)節(jié)為不同的環(huán)境持偏。
這樣的做法當(dāng)然可行,但是購買大量的魚缸又貴又占地方氨肌。
如果可以在一個大魚缸中隔出一個個小房間就好了鸿秆,每個小房間的水溫和水質(zhì)都是獨立的,這樣就解決了不同品種的魚共存的問題怎囚。
如果每個小房間都能動態(tài)生成和關(guān)閉卿叽,就更完美了,這樣我們每多養(yǎng)一種魚恳守,只要按照輸入的條件生成一個小房間就可以了考婴。
這個問題在現(xiàn)實中比較難實現(xiàn)。但是在計算機方向催烘,已經(jīng)有了成型的解決方案(Docker)沥阱。

在同一臺機器上運行兩個對環(huán)境要求截然不同的軟件,是很困難的伊群。當(dāng)然考杉,你可以在機器上啟動兩臺虛擬機,并把軟件丟進適合的虛擬機中舰始。但如果你想在一臺機器上運行10個對環(huán)境要求不同的軟件呢崇棠?

這時候,虛擬機由于本身開銷過大蔽午,無力支撐這樣的場景易茬。Docker提供的是一種輕量級的解決方案。就如同上面養(yǎng)魚的例子及老,Docker技術(shù)就類似用“薄膜”把魚缸分成了若干份抽莱,不僅擁有良好的隔離性,而且損耗非常小骄恶。

其實食铐,Docker底層的技術(shù)實現(xiàn)并非新鮮貨。Docker底層依賴LXC(Linux Container)技術(shù), 后者的歷史比Docker悠久多了僧鲁。LXC是一個提供進程級隔離的容器方案虐呻。不同于虛擬機象泵,它并沒有為進程提供單獨的內(nèi)核和操作系統(tǒng),而是僅僅提供邏輯上的隔離斟叼。

Docker則是在LXC的基礎(chǔ)上做了非常易用的封裝偶惠,并且提出Docker鏡像的概念±噬可以方便開發(fā)者們把程序的運行環(huán)境制作成鏡像忽孽,并整體拷貝到任何機器上。只要機器安裝了Docker谢床,就能基于鏡像啟動一個隔離的容器環(huán)境兄一。

Docker有什么用

Docker的作用主要體現(xiàn)在統(tǒng)一環(huán)境和環(huán)境隔離兩方面。

統(tǒng)一環(huán)境

環(huán)境一直是程序員們的老大難問題识腿。具體表現(xiàn)為以下幾個方面:

  • 環(huán)境搭建步驟繁瑣
    新人加入團隊出革,搭個環(huán)境半天就過去是常有的事情《伤希花了時間是小事骂束,有可能過程中遇到各種奇葩的坑,把心情都弄壞了硝全。
  • 環(huán)境不一致引發(fā)故障
    如果開發(fā)同學(xué)和測試同學(xué)使用的是不同的環(huán)境栖雾,就會出現(xiàn)明明能重現(xiàn)的bug因為環(huán)境不一致而無法重現(xiàn),很可能把bug帶入生產(chǎn)環(huán)境伟众,造成巨大的損失析藕。測試和生產(chǎn)環(huán)境不一致也非常致命。經(jīng)過充分測試的軟件凳厢,一上線就崩潰了账胧。這個鍋誰來背呢?

有了Docker先紫,這些問題就變得很簡單了治泥。把環(huán)境制作成標(biāo)準(zhǔn)化的鏡像,搭建環(huán)境只需要把鏡像下載下來遮精,并基于它啟動一個運行環(huán)境(容器)居夹。開發(fā),測試本冲,運維同學(xué)使用同一份鏡像准脂,再也不會出現(xiàn)環(huán)境不一致而放過的bug了。

你甚至可以對你的環(huán)境加以版本控制檬洞。Docker采用Dockerfile這樣的標(biāo)準(zhǔn)配置來構(gòu)建你的鏡像狸膏,將Dockerfile用git這樣的版本控制軟件管理起來,就實現(xiàn)了對環(huán)境的版本控制添怔。

環(huán)境隔離

微服務(wù)架構(gòu)的提出使得現(xiàn)在的軟件越來越輕湾戳,功能越來越獨立贤旷。這樣雖然降低了整個架構(gòu)的耦合性,但是對軟件交付來說復(fù)雜度提高了砾脑。從部署一個發(fā)布包變成了部署多個組件幼驶。每個組件的高可用需求不同,部署的策略也不一樣拦止。

在一臺機器上部署多個組件是很常見的場景县遣。某個組件一旦污染了環(huán)境,可能造成其他組件被破壞汹族,進而影響整個系統(tǒng)的運轉(zhuǎn)。

這時候其兴,環(huán)境隔離是我們迫切需要的技術(shù)顶瞒。Docker使用namespace實現(xiàn)了系統(tǒng)環(huán)境的隔離。進程只能感知到同一個namespace下其他進程的變化元旬,而對外界一無所知榴徐。

Docker采用Cgroup技術(shù)控制宿主機的資源分配,以免某個組件過度使用系統(tǒng)資源而影響到其他組件的正常工作匀归。
有了這兩項重要的隔離技術(shù)坑资,組件們就可以友好的生存在一起了。

快來使用Docker吧

這篇文章主要介紹了Docker存在的意義以及它能給我們帶來什么樣的好處穆端。如果你迫不及待的想了解相關(guān)的技術(shù)袱贮,可以登錄Docker的官方網(wǎng)站, 安裝并進一步了解Docker。

相信你能在實際的使用中体啰,體驗到更多文中提到的或者沒有提到的好處攒巍。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市荒勇,隨后出現(xiàn)的幾起案子柒莉,更是在濱河造成了極大的恐慌,老刑警劉巖沽翔,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件兢孝,死亡現(xiàn)場離奇詭異,居然都是意外死亡仅偎,警方通過查閱死者的電腦和手機跨蟹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哨颂,“玉大人喷市,你說我怎么就攤上這事⊥眨” “怎么了品姓?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵寝并,是天一觀的道長。 經(jīng)常有香客問我腹备,道長衬潦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任植酥,我火速辦了婚禮镀岛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘友驮。我一直安慰自己漂羊,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布卸留。 她就那樣靜靜地躺著走越,像睡著了一般。 火紅的嫁衣襯著肌膚如雪耻瑟。 梳的紋絲不亂的頭發(fā)上旨指,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天,我揣著相機與錄音喳整,去河邊找鬼谆构。 笑死,一個胖子當(dāng)著我的面吹牛框都,可吹牛的內(nèi)容都是我干的搬素。 我是一名探鬼主播,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼瞬项,長吁一口氣:“原來是場噩夢啊……” “哼蔗蹋!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起囱淋,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤猪杭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后妥衣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體皂吮,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年税手,在試婚紗的時候發(fā)現(xiàn)自己被綠了蜂筹。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡芦倒,死狀恐怖艺挪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情兵扬,我是刑警寧澤麻裳,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布口蝠,位于F島的核電站,受9級特大地震影響津坑,放射性物質(zhì)發(fā)生泄漏妙蔗。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一疆瑰、第九天 我趴在偏房一處隱蔽的房頂上張望眉反。 院中可真熱鬧,春花似錦穆役、人聲如沸寸五。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽播歼。三九已至,卻和暖如春掰读,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背叭莫。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工蹈集, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人雇初。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓拢肆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親靖诗。 傳聞我的和親對象是個殘疾皇子郭怪,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,884評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Docker — 云時代的程序分發(fā)方式 要說最近一年云計算業(yè)界有什么大事件?Google Compute Engi...
    ahohoho閱讀 15,532評論 15 147
  • 寫這篇文章主要是為了今后畢業(yè)論文素材上的整理刊橘,同時對docker進行鞏固溫習(xí)鄙才。大綱: docker簡介docker...
    胡圖仙人閱讀 7,433評論 2 96
  • Docker概覽 Docker是一個用于開發(fā)、交付和運行應(yīng)用的開放平臺促绵,Docker被設(shè)計用于更快地交付應(yīng)用攒庵。Do...
    i_cyy閱讀 1,294評論 0 7
  • 簡介 Docker是一個開源的引擎,可以輕松的為任何應(yīng)用創(chuàng)建一個輕量級的败晴、可移植的浓冒、自給自足的容器。開發(fā)者在筆記本...
    廖馬兒閱讀 619評論 0 0
  • 什么是 Docker 概述 和虛擬機一樣尖坤,容器技術(shù)也是一種資源隔離的虛擬化技術(shù)稳懒。 2000 年的時候 FreeBS...
    索倫x閱讀 1,791評論 0 8