
孫宏亮
本書是一本引導讀者深入瞭解Docker實現原理的技術普及讀物,主要目標是通過對Docker架構和源代碼的詳細講解和解剖,幫助讀者對Docker的底層實現有一個全面的理解。本書的內容主要集中於三部分:Docker的架構、Docker的模塊,以及Docker的三駕馬車Swarm、Machine和Compose。第一部分(第1章)主要從宏觀的角度和讀者一起領略Docker的架構設計,並初步介紹架構中各模塊的職責。第二部分(第2~14章)是本書的主體部分,主要針對Docker中多個重要的模塊進行具體深入分析,包括DockerClient、DockerDaemon、DockerServer、Docker網絡、Docker鏡像、Docker容器等。讀者可以發現,Docker的模塊之間耦合度非常低,很適合循序漸進,層層深入。第2~8章主要從Docker軟件的架構入手,勾勒骨架;第9~11章集中於Docker鏡像技術,夯實基礎;第12~14章則進一步分析Docker容器的始末,闡述本質。第三部分(第15~17章)介紹Docker生態三駕馬車—Swarm、Machine和Compose。Docker擁有強大的單機能力,三駕馬車可以很好地補充Docker的跨主機能力以及部署能力。讀者可以通過這幾章感受Docker生態中其他功能強大的軟件。
作者對行文的架構設計的很妙,類似docker的分層思想,從上至下,抽絲剝繭,像剝洋蔥一樣。docker這種架構設計是一種藝術。對於Docker網絡,完美利用SNAT和DNAT實現容器內網絡和宿主機網絡,因特網完美打通,借力巨人Linux的namespace和cgroup,完美實現資源隔離和使用限制。對於Docker鏡像,採用分層思想,借鑑Linux,先rootfs,再union mount,image,layer,這種設計理念,把分層架構設計思想發揮的淋漓盡致。結合楊保華博士的書《Docker技術入門與實戰(第3版)》閱讀與實戰效果更佳。
2025年讀完的第10本書。容器技術本是新瓶裝舊酒,Docker 站在 Linux Kernel 的Namespace、Cgroup、UnionFS 巨人的肩膀上,創造性地提出了 Image 鏡像的概念,真正做到了產物在開發、測試、生產環境下的一致性,極大的方便了開發者。鏡像 Image 被拆解爲 Layer,依賴 CopyOnWrite 能力,和共享層,極大的提高了效率。 本書拆解了Docker 的代碼骨架,詳細介紹Docker 各個模塊的功能和實現細節。 一個小時快速翻完,後面需要深入研究時再來翻閱對應的章節即可。
主要是代碼解釋,助於方便看代碼,快速檢索代碼。缺點是原理缺少。
還只是講了代碼的骨架, 覺得略淺
沒涉及核心原理,類似於給代碼加了註釋解釋做了什麼但沒講爲什麼這麼做
非常好的一本書,對於go語言之前從沒接觸過的我來說,看本書的go代碼,不可避免的會有看不太懂的地方,但整體來說還是可以理解的,源碼級的闡述,更加加深對docker的認知。總之很好的一本書,值得反覆閱讀[跳跳]
疫情期間在家磕碰完的一本,當時抓到的重點,隔那麼久回顧也還是很受用: - 集裝箱思想 - 外部不用關心裏面裝了什麼,也不用關心配置,整個運行起來就好了 - 容器虛擬化 - 是 OS 層面的虛擬化,資源僅在進程內隔離 - 資源隔離的實現 - 在 linux 下靠 cgroup 限制資源佔額,namespace 隔離全局資源 - 虛擬機是硬件上的虛擬化,資源完全隔離 - 鏡像 - 組成 - 運行環境參數(json) - 文件系統內容 - 文件系統:反覆可用、創建容易 - 多層聯合掛載 - 除了最頂層可寫,其它層都只讀 - 最終給到用戶的效果是一個合併的效果(修改文件實際上是挎貝多一層,然後在挎貝的這一層去反映文件的變化) - 父子關係 - 如果有共同的父,會智能識別出來,並以此減小鏡像的大小 - 網絡模式 - host 模式 - 和宿主機共用一個 Network Namespace,ip 和宿主機一樣 - 把宿主機的 host 文件掛到容器裏共用一份 - joined-container 模式 - 和另一個容器共用 Network Namespace - bridge 模式 - 每個容器一個 Network Namespace(ip 和宿主機不一樣)並自動配置 - none 模式 - 每個容器一個 Network Namespace 但要手動配置
有一些docker使用經驗,看源碼分析是個不錯的進階選擇,統觀容器涉及的知識,在深入就是linux內核,關於namespace隔離資源,cgroup管理進程組權限,iptables網絡轉發等等。最後還講了docker管理的方案,swarm、machine、compose。不過工具關鍵還是要實鑑。終於喫湯麪一樣看完了,從終點四百多頁看到七百多頁,不曉得微信閱讀怎麼個算法。
很喜歡裏面的流程圖梳理,果然一圖勝萬言啊。雖然swarm和compose在集羣化部署與管理方面已經被k8s乾死了,但是其架構層面的思想還是很有借鑑意義的
一本解讀源碼的書,如果要用漢語把代碼給複述一遍,大可不必。