- Docker源碼分析
- 孫宏亮
- 6字
- 2018-12-31 20:26:57
第1章 Docker架構
1.1 引言
Docker是Linux平臺上的一款輕量級虛擬化容器的管理引擎。在全球范圍內,Docker還是一個開源項目,整個項目基于Go語言開發,代碼托管于GitHub網站上,并遵從Apache 2.0協議。目前,Docker可以幫助用戶在容器內部快速自動化部署應用,并利用Linux內核特性命名空間(namespaces)及控制組(cgroups)等為容器提供隔離的運行環境。Docker借助操作系統層的虛擬化實現資源的隔離,因此Docker容器在運行時與虛擬機(VM)的運行有很大的區別,Docker容器與宿主機共享同一個操作系統,不會有額外的操作系統開銷。這樣的優勢很明顯,因而大大提高了資源利用率,并且提升了I/O等方面的性能。
眾多新穎的特性以及項目本身的開放性,導致Docker在不到兩年的時間里迅速獲得了諸多廠商的青睞,其中更是包括Google、Microsoft、VMware等行業領航者。Google在2014年6月推出了Kubernetes,宣布支持Docker容器的調度管理,而2014年8月Microsoft則宣布Azure上支持Kubernetes,隨后傳統虛擬化巨頭VMware宣布與Docker強強合作。2014年9月中旬,Docker更是獲得4000萬美元的C輪融資,以推動分布式應用的發展。
目前,Docker的前景被普遍看好。未來的云計算領域乃至整個IT領域,Docker都必將扮演不可或缺的角色。為了幫助大家更好地認識Docker、理解Docker并掌握Docker,本書從Docker源碼的角度出發,詳細介紹Docker的架構、Docker的運行以及Docker的特性。本章主要介紹Docker架構。
本書關于Docker的分析均基于Docker 1.2.0版本的源碼。
本章目的是在理解Docker源碼的基礎上分析Docker架構,分析過程主要按照以下三個部分進行:
□ Docker的總架構圖。
□ Docker架構內部各模塊功能與實現的分析。
□ 通過具體的Docker命令,闡述Docker的運行流程。