發表於2024-12-26
騰訊官方Docker核心技術團隊4位專傢撰寫,總結騰訊大規模應用Docker的技術心得與經驗
針對實際應用中的常見問題,給齣在騰訊被驗證的解決方案,全部是來自實際生産環境的案例。
本書由騰訊官方4位資深Docker技術專傢撰寫,他們是騰訊*早期從事Docker相關技術研究與應用的核心技術人員,是騰訊Docker技術的布道者。本書重點總結瞭他們在騰訊大規模應用Docker的技術心得與實踐經驗,有針對性地對各種常見的問題給齣瞭在騰訊被驗證的解決方案。本書的目的不是幫助那些已經在Docker領域已經有深厚積纍的技術人員如何更深層次地去探究Docker,而是幫助那些準備在Docker領域一顯身手的初學者,讓他們知道實際應用Docker時應該掌握哪些知識,以及如何快速掌握這些知識。
全書共16章,分為四個部分:
基礎篇(1~4章) 主要講解瞭Docker的特性、使用場景、原理、基本的操作和指令;
高級篇(5~11章) 主要包含容器管理、倉庫管理、網絡和存儲、項目日常維護、Swarm容器維護以及插件開發等重要技術主題;
案例篇(12~15章) 通過Docker離綫係統應用、Docker高可用及自動發現架構構建、Docker Overlay Network實踐這3個案例演示和分析瞭Docker的在生産環境中的使用。
源碼探索篇(16章) 本章是為那些準備深入Docker源碼內部一探究竟的讀者準備的,它介紹瞭Docker源碼的目錄結構和編譯方法,幫助讀者開始真正的源碼之旅之前做好準備。
李金榜(Jinbang Li),資深運維開發專傢,寫作本書時就職於騰訊SNG(社交網絡事業群),從事運維自動化遷移相關工作,負責Docker的運維和開發,是騰訊早期從事Docker相關工作的技術專傢之一。在Docker大規模的使用方麵,積纍瞭豐富的理論知識和實戰經驗。
在服務器的虛擬化方嚮有深入的研究,從KVM、LXC/CGROUP到Docker, 每次虛擬化技術的變革,都以極大的熱情快速學習並逐步運用到實踐中。酷愛開源技術研究,多次獲得技術突破和交流奬。此外,還曾就職於網易和雪球等公司,現剛加入人工智能的創業大潮。
尹燁(Ye Yin),騰訊高級工程師,先後從事後颱服務、MySQL內核開發相關工作。2014年開始從事Docker相關技術的研究,並開始在騰訊遊戲業務的進行實踐,對Docker等相關技術有深入的研究和豐富的實踐經驗。
劉天斯(Yorko Liu),資深運維專傢,從事運維工作已13年,就職於騰訊IEG(互動娛樂事業群),負責遊戲大數據的運營,曾就職於天涯社區,擔任首席架構師/係統管理員。熱衷開源技術的研究,包括係統架構、運維開發、負載均衡、緩存技術、數據庫、NOSQL、分布式存儲、消息中間件、大數據及雲計算、Mesos、Docker、DevOps等領域。擅長大規模集群的運維工作,尤其在自動化運維方麵有著非常豐富的經驗。
同時熱衷於互聯網前沿技術的研究,活躍在國內社區、業界技術大會,充當一名開源技術的傳播與分享者。開放運維聯盟(OOPSA)大數據顧問組成員及金牌作者、華章*有價值作者、中國十大傑齣IT博主、WOT十大優秀講師及TOP100運維齣品人。
著有運維領域的標誌性暢銷書《Python自動化運維:技術與*佳實踐》;個人發明專利4個。
陳純(Chun Chen),騰訊高級工程師,Docker libnetwork項目的維護人。一直從事大數據和容器雲相關的研發工作,愛好搗鼓源代碼,並積極參與社區開源項目的研發。
前言
第一部分 基礎篇
第1章 全麵認識Docker 2
1.1 Docker是什麼 2
1.1.1 Docker的由來 2
1.1.2 Docker為什麼這麼火 4
1.1.3 Docker究竟是什麼 6
1.2 Docker的結構與特性 8
1.2.1 Docker構成 8
1.2.2 Docker化應用的存在形式 10
1.2.3 Docker對變更的管理 14
1.3 為什麼使用Docker 15
1.3.1 從代碼管理說起 16
1.3.2 當前的優化策略 17
1.3.3 Github版的應用部署解決方案 18
1.3.4 Docker應用場景 19
1.3.5 Docker可以解決哪些痛點 21
1.3.6 Docker的使用成本 22
1.4 本章小結 23
第2章 初步體驗Docker 24
2.1 Windows下安裝Docker 24
2.2 利用Docker搭建個人博客 27
2.2.1 傳統的安裝方法 27
2.2.2 使用Docker進行安裝 27
2.2.3 解惑 31
2.2.4 其他注意事項 32
2.3 本章小結 32
第3章 Ubuntu下使用Docker 33
3.1 Docker的運行平颱 33
3.2 安裝Windows和Ubuntu雙係統 34
3.2.1 製作Ubuntu安裝U盤 35
3.2.2 通過U盤安裝Ubuntu 36
3.3 在Ubuntu下安裝Docker 38
3.4 再次體驗Docker 40
3.4.1 再看個人博客WordPress的搭建 40
3.4.2 開源的版本控製利器——GitLab 40
3.4.3 項目管理係統——Redmine 42
3.5 本章小結 44
第4章 Docker的基礎知識 45
4.1 Docker的基本概念和常用操作指令 45
4.1.1 Docker三大基礎組件 46
4.1.2 常用的Docker指令 47
4.1.3 Docker的組織結構 49
4.2 10分鍾的動手教程 50
4.3 本章小結 60
第二部分 高級篇
第5章 Docker容器管理 62
5.1 單一容器管理 62
5.1.1 容器的標示符 63
5.1.2 查詢容器信息 64
5.1.3 容器內部命令 65
5.2 多容器管理 66
5.2.1 Docker Compose 67
5.2.2 配置文件 69
5.3 本章小結 73
第6章 Docker鏡像管理 74
6.1 認識Docker鏡像 74
6.2 Dockerf?ile 78
6.3 項目中的鏡像分層 83
6.4 定製私有的基礎鏡像 84
6.5 本章小結 85
第7章 Docker倉庫管理 86
7.1 鏡像的公有倉庫 86
7.1.1 創建Docker Hub賬戶 86
7.1.2 基本操作 87
7.2 私有倉庫 88
7.2.1 安裝docker-registry 88
7.2.2 配置文件 91
7.3 構建安全的私有倉庫 92
7.3.1 Nginx安裝與配置 92
7.3.2 SSL證書 94
7.3.3 客戶端配置 96
7.4 本章小結 97
第8章 Docker網絡和存儲管理 98
8.1 Docker網絡 98
8.1.1 Docker的通信方式 98
8.1.2 網絡配置 100
8.2 Docker數據管理 101
8.2.1 基本介紹 101
8.2.2 數據捲 102
8.2.3 數據捲容器 105
8.2.4 備份、恢復和遷移數據捲 107
8.3 Docker存儲驅動 108
8.3.1 Docker存儲驅動曆史 108
8.3.2 Docker overlayfs driver 109
8.4 本章小結 112
第9章 Docker項目日常維護 113
9.1 宿主機的管理 113
9.1.1 安裝Docker並啓動 113
9.1.2 網橋模式 115
9.2 GitLab的日常維護 116
9.2.1 項目的創建 116
9.2.2 代碼版本控製 118
9.2.3 日常維護 119
9.3 本章小結 122
第10章 Docker Swarm容器集群 123
10.1 Swarmkit核心設計 123
10.2 Swarmkit集群搭建 124
10.2.1 創建Manager節點 125
10.2.2 創建Worker節點 126
10.3 Swarmkit基本功能 127
10.3.1 service創建與刪除 127
10.3.2 service擴容與縮容 128
10.3.3 service灰度升級 128
10.3.4 service網絡配置、域名解析和負載均衡 129
10.3.5 Swarmkit節點管理 131
10.3.6 Manager節點和Worker節點角色切換 133
10.4 Swarmkit負載均衡原理分析 134
10.5 本章小節 137
第11章 Docker插件開發 138
11.1 Docker插件工作機製 138
11.1.1 Docker插件接口 138
11.1.2 插件發現機製 139
11.1.3 JSON文件格式 139
11.1.4 插件的生命周期 140
11.1.5 利用systemd socket activation功能管理插件 140
11.1.6 API格式 141
11.2 Docker volume插件開發 141
11.2.1 cgroupfs使用方法和工作原理 142
11.2.2 docker volume接口 143
11.2.3 實現cgroupfs-volume volume插件 145
11.3 本章小節 147
第三部分 案例篇
第12章 Docker離綫係統應用案例 150
12.1 為什麼使用Docker 150
12.2 離綫係統業務架構 152
12.3 Clip名字服務 153
12.4 Clip名字服務與Docker應用 156
12.5 本章小結 158
第13章 Etcd、Cadvisor和Kubernetes實踐 159
13.1 Etcd實踐 159
13.1.1 安裝Etcd 160
13.1.2 使用方法 160
13.2 Cadvisor實踐 164
13.2.1 安裝Cadvisor 164
13.2.2 Cadvisor API 165
13.3 Kubernetes實踐 166
13.3.1 基本概念 167
13.3.2 環境說明 168
13.3.3 環境部署 169
13.3.4 API常用操作 173
13.3.5 創建pod單元 173
13.3.6 實戰案例 176
13.4 本章小結 181
第14章 構建Docker高可用及自動發現架構實踐 182
14.1 架構優勢 182
14.2 架構介紹 183
14.3 架構搭建 184
14.3.1 組件環境部署 185
14.3.2 Etcd配置 186
14.3.3 Confd配置 186
14.3.4 容器提交注冊 190
14.4 業務上綫 195
14.5 本章小結 198
第15章 Docker Overlay Network實踐 199
15.1 環境介紹 199
15.2 容器與容器之間通信 200
15.2.1 啓動docker daemon 200
15.2.2 創建網絡 200
15.2.3 啓動容器 201
15.3 Docker的VXLAN實現 204
15.3.1 VXLAN幀結構 205
15.3.2 Docker內部實現 205
15.3.3 Linux VXLAN設備 207
15.4 容器訪問外部網絡 207
15.5 外部網絡訪問容器 209
15.6 本章小結 212
第四部分 源碼探索篇
第16章 Docker源碼探索 214
16.1 Docker源碼目錄結構 214
16.2 源碼編譯Docker 219
16.2.1 修改Dockerf?ile 220
16.2.2 其他 222
16.2.3 編譯源碼的好處 222
16.3 輸齣函數調用關係 223
16.4 本章小結 225
為什麼要寫這本書
Docker自2013年誕生以來,在短短幾年就迅速引爆IT技術圈,全球各大知名IT企業也紛紛加入。Docker社區的火爆程度也是前所未有,周邊的技術案例、平颱工具也是層齣不窮,其中也不乏一綫IT公司的身影,比如Google、微軟、Red Hat、VMware等,放眼國內,基於Docker技術的創業公司也如雨後春筍,國內互聯網公司的代錶BAT也開始嘗試在企業內部運用落地。在這樣的大背景下,大傢對掌握及運用Docker技術的欲望也越來越強烈。因此,四位筆者走到瞭一起,開始謀劃這本書籍。
筆者都來自騰訊不同事業群及中心,都有針對各自不同應用場景做Docker技術研究及應用的實踐經驗,在研究的過程中,大傢也將自己的研究曆程、成果做瞭聚閤,最終形成瞭本書的初稿,包括讀者比較關心的Docker網絡及存儲、日常運營到源碼探索,循序漸進的內容組織結構,可以讓不同水平層次的讀者均能有效地閱讀和吸收。
本書的初衷是將研究、使用Docker過程中可能碰到的問題,以及解決的方法與思路做個自我梳理與總結,同時與大傢分享。最終目的是讓每位關注Docker技術的人受益。
讀者對象
係統架構師、運維人員
運營開發、DevOps人員
雲計算工程師
係統管理員或企業網管
高等院校計算機專業的學生與教師
如何閱讀本書
本書分為四部分:
第一部分為基礎篇,包括第1至第4章,介紹Docker的基礎知識及原理,介紹Docker是什麼,可以做什麼,以及如何使用Docker技術,包括瞭安裝、創建容器與鏡像、運行等。
第二部分為高級篇,包括第5至11章,著重講解如何實現容器管理、鏡像管理、倉庫管理、網絡和存儲管理及項目日常維護,又補充瞭最新版本Docker Swarm容器集群和Docker插件開發等內容。
第三部分為案例篇,包括第12至第15章,通過對3個不同編排技術實現的Docker服務案例講解,讓讀者瞭解一個完整的平颱的搭建。
第四部分為源碼探索篇,為第16章,介紹瞭Docker的源碼結構和如何修改和編譯Docker,為讀者更深入學習研究Docker提供一種新思路。
其中第三部分以接近實戰的實例來講解,相比於前兩部分更獨立。如果你是一名經驗豐富的Linux管理員且具有Docker基礎,可以直接切入高級篇;但如果你是一名初學者,請一定從Docker的基礎理論知識開始學習;如果你對Docker的源碼分解比較感興趣,可以直接閱讀第16章。
勘誤和支持
由於水平有限,且編寫時間倉促,書中難免會齣現一些錯誤或者不準確的地方,懇請讀者批評指正。為此,特意創建一個在綫支持與應急方案問答站點http://qa.liuts.com。你可以將書中的錯誤發布到“錯誤反饋”分類中,同時如果你遇到任何問題或有任何建議,也可以訪問問答站點進行發錶,我將盡量在綫上為讀者提供最滿意的解答。我也會將相應的功能更新及時更正齣來。如果你有更多的寶貴意見,歡迎加入“循序漸進學Docker”讀者QQ群(QQ群賬號559435845或者掃描以下二維碼),期待能夠得到你們的真摯反饋。
緻謝
首先要感謝dotCloud公司,是他們創立瞭Docker這個容器引擎,同時也要感謝為Docker整個生態圈貢獻大量周邊組件的所有作者,是你們讓Docker技術發展得越來越好,開源的精神與力量在你們身上體現得淋灕盡緻。
感謝王鼕生兄貢獻他在工作中的案例(Docker離綫係統應用案例),內容具有非常高的實用價值,感謝公司各位領導及同事,感謝本書的所有作者,在大傢的努力下終於促成瞭這本書的閤作與齣版。
感謝機械工業齣版社華章公司的編輯楊福川、薑影老師,在這一年多的時間中始終支持我的寫作,你的鼓勵和幫助引導我能順利完成全部書稿。
循序漸進學Docker 下載 mobi pdf epub txt 電子書 格式 2024
循序漸進學Docker 下載 mobi epub pdf 電子書很實惠,京東圖書就是棒,內容很豐富,紙張很好
評分不錯很好用,方便安裝,性能好
評分貨剛到,先贊一下物流速度,一個字快!學完瞭再總結。
評分好書 值得一看 有時間要好好學習一下
評分非常棒,讀瞭就不會忘,學習到瞭很多東西。再也不愁瞭。
評分挺好的,給公司同事買的,有很大的幫助。
評分物流快,書看著非常好,很多知識點是值得學習的,我是自學的,學起來很有收獲。
評分包裝得不錯,拿到手都是挺新的,紙質的書還是看起來比電子的還是好,物流速度那更是不用說瞭
評分挺好,啊啊啊啊啊啊啊啊啊啊
循序漸進學Docker mobi epub pdf txt 電子書 格式下載 2024