- Docker源碼分析
- 孫宏亮
- 1482字
- 2018-12-31 20:26:57
前言
Docker是什么
Docker從2013年誕生,短短兩年時間就在全球IT技術圈內迅速走紅,實乃技術圈內不可忽視的一陣颶風。然而,Docker是什么,Docker帶來了什么?
Docker官方如此描述Docker:“Build,Ship,Run.An open platform for distributed applications for developers and sysadmins”。換言之,Docker為開發(fā)者與系統(tǒng)管理者提供了分布式應用的開放平臺,從而可以便捷地構建、遷移與運行分布式應用。
多年來,IT行業(yè)中開發(fā)與運維一直是兩個界限清晰的詞。開發(fā)工程師專門從事軟件的開發(fā)工作,最終交付軟件代碼;運維工程師則部署前者交付的軟件,并接管軟件的運行與管理。然而,在長時間的實踐過程中,開發(fā)與運維分離的方式難免存在弊病,兩者職責的過分清晰導致軟件效率的降低。隨著分布式系統(tǒng)的流行,系統(tǒng)規(guī)模越來越大,軟件越來越復雜,系統(tǒng)環(huán)境配置暴露的問題層出不窮。究其緣由,還是因為開發(fā)人員缺少軟件運行環(huán)境的認知,而運維人員對軟件邏輯所知甚少。在這樣的背景下,DevOps橫空出世,提倡開發(fā)與運維不可分割,協(xié)調并進。
Docker無疑是DevOps大潮中最具實踐價值的不二法寶。Docker從Linux內核的角度出發(fā),屬于輕量級虛擬化技術,有能力秒級提供應用隔離環(huán)境,完成云計算時代分布式應用的第一需求“隔離”。另外,Docker的鏡像技術利用聯(lián)合文件系統(tǒng)的優(yōu)勢,自下至上打包系統(tǒng)軟件、系統(tǒng)環(huán)境以及軟件程序,將運行環(huán)境與應用程序靈活地結合,快速運行Docker化的應用程序。同時,可讀性極強的Dockerfile,極大地簡化鏡像的復雜性,并為鏡像的轉移與重新構建提供了可能性。
Docker提供輕便的資源分配方式,解決應用運行與系統(tǒng)環(huán)境的依賴,彌合應用跨節(jié)點遷移的鴻溝,種種特性都表明Docker幾乎就是為“云計算”而生的。如今,Docker社區(qū)不斷擴大并健康發(fā)展,多家國際IT巨頭也紛紛宣布支持Docker,這一切更是讓全球IT人士對Docker的未來充滿信心。
本書的內容
本書是一本引導讀者了解Docker實現(xiàn)原理的技術普及書。筆者一直堅信,了解軟件或者系統(tǒng)最直接、最透徹的方式就是研讀它們的源碼?!霸创a即文檔”也是鼓勵開發(fā)者能更多地從源碼的角度去學習軟件或系統(tǒng)的本質。
本書的內容主要集中于3個部分:Docker的架構,Docker的模塊,Docker的三駕馬車Swarm、Machine以及Compose。
第一部分,主要從宏觀的角度和讀者一起領略Docker的架構設計,并初步介紹架構中各模塊的職責。
第二部分是本書的主體部分,主要針對Docker中多個重要的模塊進行具體深入分析,包括:Docker Client、Docker Daemon、Docker Server、Docker網絡、Docker鏡像、Docker容器等。讀者可以發(fā)現(xiàn),Docker的模塊之間耦合度非常低,很適合循序漸進,層層深入。第2章至第8章主要從Docker軟件的架構入手,勾勒骨架;第9章至第11章重點討論Docker鏡像技術,夯實基礎;第12章至第14章則進一步分析Docker容器的始末,闡述本質。
第三部分介紹Docker生態(tài)三駕馬車Swarm、Machine、Compose。Docker擁有強大的單機能力,三駕馬車可以很好地補充Docker的跨主機能力以及部署能力。讀者可以通過第15章至第17章感受Docker生態(tài)圈中其他功能強大的軟件。
希望本書能夠讓讀者最大化地感受Docker的神奇與魅力。
關于勘誤
由于時間與水平都比較有限,因此本書難免會存在一些紕漏和錯誤。如果讀者發(fā)現(xiàn)了問題,請及時與我聯(lián)系。我也會在本書后續(xù)的版本中加以改正。我的郵箱是:allen.sun@daocloud.io。我非常希望和大家一起學習與討論Docker,并共同推動Docker在社區(qū)的發(fā)展。
致謝
最后,向本書編寫過程中給予我巨大幫助的人們表示最誠摯的感謝。感謝我的父母,沒有他們的鼓勵和支持,此書不可能在如此短的時間內完成。感謝我的母校浙江大學以及SEL實驗室的老師與同學們,是他們在我求學過程中給予無私的指引與幫助。感謝我的同事熊中祥,是他在本書編寫過程中提出了很多寶貴的建議,尤其在Machine和Compose部分。感謝我的同事喻勇和馮釗,他們?yōu)楸緯木帉懽隽撕芏鄿贤ㄅc協(xié)調工作。最后,還要感謝華章公司的編輯們,她們認真細致的工作,使本書以完美的形式展現(xiàn)給各位讀者。
孫宏亮
2015年6月
- 物聯(lián)網射頻識別(RFID)技術與應用
- 一線架構師實踐指南
- PhoneGap開發(fā)指南
- Scala機器學習
- 知行合一: 實現(xiàn)價值驅動的敏捷和精益開發(fā)
- 軟件需求分析實戰(zhàn)
- ODPS權威指南 阿里大數(shù)據(jù)平臺應用開發(fā)實踐
- 移動Web實現(xiàn)指南:面向移動設備的網站優(yōu)化、開發(fā)和設計
- Spring Cloud Alibaba大型微服務架構項目實戰(zhàn)(上冊)
- 建筑運維智慧管控平臺設計與實現(xiàn)
- 負載均衡:高并發(fā)網關設計原理與實踐
- 軟件開發(fā)的201個原則
- Spring Cloud微服務快速上手
- 軟件自動化測試成功之道:典型工具、腳本開發(fā)、測試框架和項目實戰(zhàn)
- MATLAB函數(shù)速查手冊(修訂版)