Docker從零到集群(1/3)—Machine,Compose,Swarm

系列目錄

Docker從零到集群(1/3)—Machine,Compose,Swarm
Docker從零到集群(2/3)—Machine,Compose,Swarm
Docker從零到集群(3/3)—Machine,Compose,Swarm

前言

Docker,容器,看似迷你微小的身軀辈双,卻是蘊含著龐大的智慧。它的出現(xiàn)去除了復雜的配置抖拦,改變了繁瑣的運維刹枉,解放了冗余的環(huán)境檬洞,讓大規(guī)模的高擴展荡陷,高可用的集群部署成為一件并不復雜的事情雨效。
這一篇文章,會盡可能用簡單易懂的敘述和快速便捷的操作講解從編寫代碼到將其部署在一個可隨意擴展的集群上废赞。國內(nèi)相關的資料實在是太少了徽龟,許多的構建指南和教程不是太老就是不完整,初學者很難以入門唉地,尤其是swarm的集群部分据悔,大量的概念沒有講解清除造成了極大的門檻
我希望這一篇文章是能夠真正涵蓋Docker的所有核心,也希望所有有心的讀者能夠借此踏入微服務集群領域耘沼,嘗試著與傳統(tǒng)單體大型應用開發(fā)或者傳統(tǒng)分布式應用開發(fā)不一樣的路

概念

話不多說极颓,直接先進入Docker的核心概念說明,Docker與其三劍客分別是:

  • Docker(Image/Container/Registry)
  • Docker Machine
  • Docker Compose
  • Docker Swarm
    掌握以上四個Docker核心耕拷,就可以完成從代碼到集群的部署讼昆,不過看似簡單,學習起來其實還是有一些曲線的骚烧,我自己總結了許久,以下的學習路線也許入門會比較輕松

總覽

Docker(Image/Container/Registry)

首先是Docker的3個最基本的核心概念闰围,基礎中的基礎赃绊,那就是Image鏡像,Container容器羡榴,Registry倉庫碧查。
Image鏡像的概念就是容器運行時需要的所有程序,文件,參數(shù)等的集合體忠售,每一個鏡像可以理解為一個應用程序的完整體传惠。
Container容器的概念就是運行起來的鏡像。說到這里稻扬,我們其實可以對比程序和進程的概念卦方,程序是存儲在硬盤上的文件,所謂進程就是被加載內(nèi)存里運行的程序泰佳。鏡像和容器是一個道理盼砍,沒有什么深奧的
Registry倉庫的概念就是鏡像的集合,倉庫里每個鏡像都可以有自己的標簽逝她,版本等浇坐,通過倉庫,就可以很輕松下載需要的鏡像

好的黔宛,說到這里近刘,可以串起來講一下Docker的概念,Docker其實并不是傳統(tǒng)意義上的虛擬機臀晃, 它并不是在宿主機上新建立一個虛擬機跌宛。Docker之所以能類似虛擬機一樣有隔離獨立操作系統(tǒng)空間,根本上因為Linux內(nèi)核支持的隔離技術(在此不展開积仗,操作系統(tǒng)內(nèi)核技術不在本文討論范圍內(nèi))疆拘,所以非Linux系統(tǒng),都是沒有辦法直接運行Docker的寂曹,只能通過其他辦法中轉

可以說也是因為Docker吧哎迄,Linux的地位可謂是又上了一層樓,學習Docker最好的辦法是用Linux系統(tǒng)隆圆,當然Windows和Mac OS X也可以漱挚,就是需要安裝其他工具輔助運行

最后再說一下Docker本身的文件系統(tǒng)是分層的,當你下載了一個基礎鏡像后渺氧,對這個鏡像進行安裝工具旨涝,應用,或者是設置環(huán)境變量等等侣背,其實都是在這個鏡像的基礎進行增量文件寫入白华。這也就解釋了很多人的困惑,為什么一個linux系統(tǒng)再小也得好幾百MB贩耐,甚至上幾GB的大小弧腥,但是有時候一個Docker的操作系統(tǒng)鏡像才幾十MB甚至十幾MB。因為Docker的鏡像并不是完整的操作系統(tǒng)鏡像潮太,并不會包含操作系統(tǒng)所有的文件管搪。Docker使用的都是Linux的內(nèi)核虾攻,不同的Linux發(fā)行版本用的也都是Linux內(nèi)核,只是安裝的軟件工具不同而已更鲁。所以不同的Docker操作系統(tǒng)鏡像霎箍,其本質的不同就是他們的Dockerfile上的安裝軟件工具的不同

Docker Machine

很多人會把Docker Machine和Docker弄混,其實Docker Machine只是安裝Docker環(huán)境的工具澡为,而且這就真的是一個虛擬機工具了漂坏。因為不同的Linux發(fā)行版太多了,而且還有Windows和Mac OS X等操作系統(tǒng)缀壤,要是大量不同機器樊拓,而且操作系統(tǒng)參次不齊,那光是安裝Docker就足夠累死了塘慕。所以Docker Machine應運而生筋夏,Docker Machine可以通過命令快速創(chuàng)建帶有Docker環(huán)境的虛擬機,然后在這個虛擬機里面图呢,就可以快速地部署Docker容器了

Docker Compose

如果說Docker是應用環(huán)境安裝腳本的集合条篷,那么Dcoker Compose就是Docker啟動運行腳本的集合,因為使用Docker命令定制化地啟動一個鏡像容器蛤织,命令很長而且不好記憶赴叹,每個容器都要輸入命令也繁瑣,容器數(shù)量一大指蚜,會累死乞巧,所以Docker Compose就誕生了,一個yml的腳本文件摊鸡,就搞定

Docker Swarm

通過Docker Machine我們創(chuàng)建啟動了帶有Docker環(huán)境的虛擬機绽媒,然后通過Docker Compose我們在虛擬機上啟動運行了Dcoker,但是這些都僅僅是啟動運行了一個鏡像容器免猾,和傳統(tǒng)單機應用也沒啥區(qū)別是辕,而且傳統(tǒng)的好像也沒這么麻煩。這時候猎提,Docker的終極目標Docker Swarm就上場了获三,通過Docker Swarm,就可以通過僅僅幾個命令將大量的機器創(chuàng)建成一個集群锨苏,然后在這個集群里面的每臺機器上都運行部署指定的鏡像容器疙教!所有的鏡像容器組成的集群,對外就像一臺機器一樣蚓炬,沒有任何區(qū)別松逊,全自動的負載均衡,全自動的容災處理肯夏。這一些以前需要專業(yè)運維團隊長時間工作才能完成的事情,如今一個人一天就可以完成,而且非常輕松驯击!這是傳統(tǒng)單機應用甚至是傳統(tǒng)分布式應用無法匹及的烁兰,所以Docker為微服務架構打下基礎,引領新一輪軟件工程革命是毫不夸張的

后記

以上就是Docker的核心概念徊都,將其所有概念串起來沪斟,我們可以得到從零開始到構建一個集群系統(tǒng)的基本思路:

  1. 通過Docker將應用的運行環(huán)境,和代碼本身打包成為一個完整的鏡像(Image)

  2. 通過容器(Container)運行生成的鏡像暇矫,就相當于運行了應用

  3. 通過上傳生成的鏡像到倉庫(Registry)主之,可以云端持久化鏡像,在我們需要的時候下載以容器運行李根,就可以得到了一個理論上能在任何系統(tǒng)運行的應用體槽奕,無須關心任何的配置和環(huán)境,一次構建房轿,隨處運行

  4. 通過以上步驟粤攒,我們可以得到一個存儲在云端,能隨時下載運行的鏡像囱持,但是通過Docker的命令參數(shù)運行容器夯接,是比較冗余麻煩的,尤其是在容器數(shù)量比較多的情況下纷妆。這時候我們需要利用Docker Comopse編寫一個yml文件盔几,使用一個簡單的命令執(zhí)行這個配置文件,我們則可以迅速運行yml文件所有配置好的所有容器服務

  5. 因為Docker的安裝在不同的系統(tǒng)安裝不同掩幢,為了簡化Docker環(huán)境的部署逊拍,引入Dokcer Machine,通過它創(chuàng)建一個帶有Docker環(huán)境的虛擬機粒蜈,在這個虛擬機里可以直接使用Dokcer

  6. 通過以上顺献,我們完成了單機Dokcer配置運行所有的工作,我們可以完美地在單機上創(chuàng)建部署運行多個容器枯怖,讓其相互關聯(lián)工作注整。但是單機應用在訪問量大時,是無法支撐的度硝。這個時候我們就需要通過Docker Swarm肿轨,將多臺主機組成一個集群,然后創(chuàng)建可伸縮的服務蕊程,每個服務的基礎是一個鏡像容器椒袍,這個服務會根據(jù)設定好的數(shù)量,自動分發(fā)到每臺服務主機上藻茂,且數(shù)量可隨意調節(jié)驹暑。不同的主機會被構建在一個網(wǎng)絡中玫恳,對外部而言,就像是一臺主機一樣优俘,集群會自動負載均衡

后續(xù)

至此京办,就是Docker構建集群的基本思路,限于篇幅帆焕,本文只闡述Docker的核心概念和簡單說明集群的構建思路惭婿。整個Docker系列文章預計會有三篇,后續(xù)兩篇會一步步闡述如何真實構建單機Docker應用系統(tǒng)和如何構建一個可伸縮的Dokcer集群系統(tǒng)叶雹,所以财饥,未完待續(xù)...

感謝你的閱讀,希望本文能夠給你帶來幫助

作者:CheneyXu
關于:XServer官網(wǎng)

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末折晦,一起剝皮案震驚了整個濱河市钥星,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌筋遭,老刑警劉巖打颤,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異漓滔,居然都是意外死亡编饺,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門响驴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來透且,“玉大人,你說我怎么就攤上這事豁鲤』嗵埽” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵琳骡,是天一觀的道長锅论。 經(jīng)常有香客問我,道長楣号,這世上最難降的妖魔是什么最易? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮炫狱,結果婚禮上藻懒,老公的妹妹穿的比我還像新娘。我一直安慰自己视译,他們只是感情好嬉荆,可當我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著酷含,像睡著了一般鄙早。 火紅的嫁衣襯著肌膚如雪汪茧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天蝶锋,我揣著相機與錄音陆爽,去河邊找鬼什往。 笑死扳缕,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的别威。 我是一名探鬼主播躯舔,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼省古!你這毒婦竟也來了粥庄?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤豺妓,失蹤者是張志新(化名)和其女友劉穎惜互,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體琳拭,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡训堆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了白嘁。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坑鱼。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖絮缅,靈堂內(nèi)的尸體忽然破棺而出鲁沥,到底是詐尸還是另有隱情,我是刑警寧澤耕魄,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布画恰,位于F島的核電站,受9級特大地震影響吸奴,放射性物質發(fā)生泄漏允扇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一奄抽、第九天 我趴在偏房一處隱蔽的房頂上張望蔼两。 院中可真熱鬧,春花似錦逞度、人聲如沸额划。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽俊戳。三九已至揖赴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間抑胎,已是汗流浹背燥滑。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留阿逃,地道東北人铭拧。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像恃锉,于是被迫代替她去往敵國和親搀菩。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,828評論 2 345

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

  • Docker — 云時代的程序分發(fā)方式 要說最近一年云計算業(yè)界有什么大事件破托?Google Compute Engi...
    ahohoho閱讀 15,508評論 15 147
  • 總有一些傻逼阻礙生活前進的步伐肪跋,包括我自己。你們都跟我一樣的傻逼土砂。1塊錢真能秒殺寶馬車州既?2塊錢彩票真會中?3天不聯(lián)...
    11樓不算高閱讀 338評論 0 1
  • 誰都曾面對生活痛苦猶疑,誰都會有不上臺面的時光锌俱,那一點也不丟人晤郑。別人的生活沒有你想像的好,你的生活也沒有自己以為的...
    吳氵晃閱讀 287評論 0 1
  • 端午期間贸宏,親家不運萬里捎來粽子造寝,皮蛋……。皮蛋獨有特色: 松花皮蛋松花朵吭练, 內(nèi)層夾心似琥珀诫龙。 清涼甘甜鮮味美, 萬...
    噴泉閱讀 378評論 0 4