Docker——容器與容器雲,人民郵電出版社出版發行的一本書。
基本介紹
- 書名:Docker——容器與容器雲
- ISBN:978-7-115-40110-6
- 出版社:人民郵電出版社
簡介,目錄,
簡介
本書從實踐者的角度,在講解Docker高級實踐技巧的同時,深入到原始碼層次,為讀者梳理出Docker容器技術和基於Docker的容器雲技術(如Kubernetes)的實現方法和設計思路,幫助讀者理解如何在實際場景中利用Docker解決問題並啟發新的思考。全書包括兩部分,第一部分深入解讀Docker容器技術,包括Docker入門、架構總覽、Docker容器核心原理解讀,以及Docker高級實踐技巧;第二部分深入解讀基於Docker的主流容器雲技術,講解了構建自己的容器雲的方法,深入分析了3類Docker容器雲技術的實現方法的設計思路,包括專注Docker容器編排與部署的容器雲(Compose、Machine、Swarm、Fleet)、專注套用支撐的容器雲(Flynn、Deis),以及一切皆容器的Kubernetes。
本書適用於有一定Docker基礎的開發者、架構師、IT專業學生以及探索基於Docker構建雲計算平台的技術人員,也非常適合作為高校教材或培訓資料。
本書適用於有一定Docker基礎的開發者、架構師、IT專業學生以及探索基於Docker構建雲計算平台的技術人員,也非常適合作為高校教材或培訓資料。
目錄
第一部分 Docker深入解讀
第1章 從容器到容器雲 2
1.1 雲計算平台 2
1.2 容器,新的革命 3
1.3 進化:從容器到容器雲 7
第2章 Docker基礎 8
2.1 Docker的安裝 8
2.2 Docker操作參數解讀 9
2.3 搭建你的第一個Docker套用棧 16
2.3.1 Docker集群部署 16
2.3.2 第一個Hello World 17
2.3.3 開發、測試和發布一體化 27
第3章 Docker核心原理解讀 28
3.1 Docker背後的核心知識 28
3.1.1 namespace資源隔離 28
3.1.2 cgroups資源限制 45
3.2 Docker架構概覽 53
3.3 client和daemon 55
3.3.1 client模式 55
3.3.2 daemon模式 57
3.3.3 從client到daemon 63
3.4 libcontainer 66
3.4.1 libcontainer的工作方式 68
3.4.2 libcontainer實現原理 69
3.4.3 使用nsinit與libcontainer進行互動 74
3.5 Docker鏡像管理 76
3.5.1 什麼是Docker鏡像 76
3.5.2 Docker鏡像關鍵概念 78
3.5.3 Docker鏡像操作解析 80
3.5.4 Docker容器的遷移方法 84
3.6 Docker存儲驅動 85
3.6.1 存儲驅動的功能與管理 86
3.6.2 aufs與Device Mapper驅動 87
3.7 Docker數據卷 93
3.7.1 數據卷的使用方式 94
3.7.2 數據卷原理解讀 98
3.8 Docker網路管理 102
3.8.1 Docker網路基礎 102
3.8.2 Docker daemon網路配置原理 107
3.8.3 libcontainer網路配置原理 111
3.8.4 Link原理解析 115
3.9 Docker與容器安全 118
3.9.1 Docker的安全機制 118
3.9.2 Docker安全問題 122
3.9.3 Docker安全的解決方案 126
第4章 Docker高級實踐技巧 138
4.1 容器化思維 138
4.1.1 SSH伺服器的替代方案 139
4.1.2 Docker內套用日誌管理方案 139
4.1.3 其他技巧匯總 140
4.2 Docker高級網路實踐 142
4.2.1 玩轉Linux network namespace 143
4.2.2 pipework原理解析 148
4.2.3 pipework跨主機通信 154
4.2.4 OVS劃分VLAN 159
4.2.5 OVS隧道模式 163
4.3 Dockerfile最佳實踐 175
4.3.1 Dockerfile的使用 176
4.3.2 Dockerfile實踐心得 180
4.4 Docker容器的監控手段 182
4.4.1 Docker容器監控維度 182
4.4.2 容器監控命令 183
4.4.3 常用的容器監控工具 186
4.5 容器化套用構建的基礎:高可用配置中心 189
4.5.1 etcd經典套用場景 190
4.5.2 etcd實現原理 194
第二部分 Docker雲平台解讀
第5章 構建自己的容器雲 210
5.1 再談雲平台的層次架構 210
5.2 從小工到專家 213
第6章 專注編排與部署:三劍客與Fleet 218
6.1 編排小神器Fig 218
6.1.1 再談容器編排與部署 218
6.1.2 Compose原理:一探究竟 221
6.2 環境透明化工具Machine 225
6.2.1 Machine與虛擬機軟體 226
6.2.2 Machine與IaaS平台 227
6.2.3 Machine小結 228
6.3 集群抽象工具Swarm 229
6.3.1 Swarm簡介 229
6.3.2 試用Swarm 230
6.3.3 Swarm集群的多種創建方式 231
6.3.4 Swarm對請求的處理 233
6.3.5 Swarm集群的調度策略 233
6.3.6 Swarm與Machine 234
6.4 編排之秀Fleet 235
6.4.1 舊問題新角度:Docker distro 235
6.4.2 Fleet的原理剖析 239
第7章 專注套用支撐和運行時:Flynn 和Deis 245
7.1 Flynn,一個小而美的兩層架構 245
7.1.1 第0層:容器雲的基礎設施 246
7.1.2 第1層:容器雲的功能框架 246
7.1.3 Flynn體系架構與實現原理 247
7.2 談談Deis與Flynn 257
7.2.1 套用發布上的比較 258
7.2.2 關於Deis的一些思考 260
第8章 一切皆容器:Kubernetes 261
8.1 Kubernetes簡介 261
8.2 Kubernetes的設計解讀 262
8.2.1 一個典型案例:Guestbook. 263
8.2.2 Kubernetes核心概念剖析 265
8.3 Kubernetes核心組件解讀 294
8.3.1 APIServer 294
8.3.2 Scheduler 301
8.3.3 Controller Manager 309
8.3.4 kubelet 314
8.3.5 kube-proxy 320
8.3.6 核心組件協作流程 325
8.4 Kubernetes用戶認證授權與資源管理 328
8.4.1 namespace解析 328
8.4.2 基於token檔案或客戶端證書的認證機制 333
8.4.3 基於訪問規則的授權機制 334
8.4.4 基於資源的授權控制AdmissionControl 336
8.5 Kubernetes網路核心原理 347
8.5.1 單pod單IP模型 348
8.5.2 pod和網路容器 350
8.5.3 實現Kubernetes的網路模型 353
8.6 Kubernetes高級實踐 356
8.6.1 Kubernetes高級實踐之套用健康檢查 356
8.6.2 Kubernetes高級實踐之高可用性 358
8.6.3 Kubernetes高級實踐之日誌 362
8.6.4 Kubernetes高級實踐之集成DNS 364
8.6.5 Kubernetes高級實踐之容器上下文環境 366
8.7 不要停止思考 368
第三部分 附錄
附錄A Docker的安裝 372
附錄B 閱讀Docker原始碼的神兵利器 379
附錄C 快速熟悉開源項目 388
附錄D cgroups的測試與使用 391
附錄E cgroups子系統配置參數介紹 395
附錄F Kubernetes的安裝 400
後記 403