Docker進階與實戰
內容描述
<內容簡介>
本書基於Docker1.8版本,由淺入深地將Docker技術及周邊生態呈現給廣大讀者。第1、2章是容器技術的概述;第3~7章分別介紹鏡像、倉庫、網絡、捲管理等容器核心概念;第7、8章介紹Docker接口和安全;第9、10章是Docker的標準實現,幫助讀者創建自己的鏡像並理解背後的原理。第11、12章介紹Docker的集群管理及生態圈,幫助讀者瞭解整個生態鏈。第13、14章是Docker測試及社區開發,幫助讀者熟悉Docker社區的運作方式。
<章節目錄>
序
前言
第1章Docker簡介1
1.1引言1
1.1.1Docker的歷史和發展1
1.1.2Docker的架構介紹2
1.2功能和組件3
1.2.1Docker客戶端3
1.2.2Dockerdaemon3
1.2.3Docker容器3
1.2.4Docker鏡像4
1.2.5Registry4
1.3安裝和使用5
1.3.1Docker的安裝5
1.3.2Docker的使用6
1.4概念澄清8
1.4.1Docker在LXC基礎上做了什麼工作8
1.4.2Docker容器和虛擬機之間有什麼不同9
1.5本章小結10
第2章關於容器技術11
2.1容器技術的前世今生11
2.1.1關於容器技術11
2.1.2容器技術的歷史12
2.2一分鐘理解容器14
2.2.1容器的組成14
2.2.2容器的創建原理15
2.3Cgroup介紹16
2.3.1Cgroup是什麼16
2.3.2Cgroup的接口和使用17
2.3.3Cgroup子系統介紹18
2.4Namespace介紹20
2.4.1Namespace是什麼20
2.4.2Namespace的接口和使用21
2.4.3各個Namespace介紹22
2.5容器造就Docker26
2.6本章小結27
第3章理解Docker鏡像28
3.1Dockerimage概念介紹28
3.2使用Dockerimage29
3.2.1列出本機的鏡像29
3.2.2Build:創建一個鏡像31
3.2.3Ship:傳輸一個鏡像32
3.2.4Run:以image為模板啟動一個容器32
3.3Dockerimage的組織結構33
3.3.1數據的內容33
3.3.2數據的組 織35
3.4Dockerimage擴展知識37
3.4.1聯合掛載37
3.4.2寫時復制37
3.4.3Git式管理40
3.5本章小結40
第4章倉庫進階41
4.1什麼是倉庫41
4.1.1倉庫的組成41
4.1.2倉庫鏡像42
4.2再看DockerHub43
4.2.1DockerHub的優點43
4.2. 2網頁分佈44
4.2.3賬戶管理系統46
4.3倉庫服務49
4.3.1Registry功能和架構49
4.3.2RegistryAPI50
4.3.3RegistryAPI傳輸過程分析53
4.3.4鑑權機制57
4.4部署私有倉庫61
4.4.1運行私有服務61
4.4.2構建反向代理61
4.5Index及倉庫高級功能64
4.5.1Index的作用和組成64
4.5.2控制單元65
4.5.3鑑權模塊66
4.5.4數據庫67
4.5.5高級功能68
4.5. 6Index客戶端界面69
4.6本章小結69
第5章Docker網絡71
5.1Docker網絡現狀71
5.2基本網絡配置73
5.2.1Docker網絡初探73
5.2.2Docker網絡相關參數80
5.3高級網絡配置85
5.3.1容器跨主機多子網方案85
5.3.2容器跨主機多子網配置方法86
5.4網絡解決方案進階90
5.4.1Weave90
5.4.2Flannel91
5.4.3SocketPlane94
5.5本章小結98
第6章容器捲管理99
6.1Docker捲管理基礎99
6.1 .1增加新數據捲99
6.1.2將主機目錄掛載為數據捲100
6.1.3創建數據捲容器100
6.1.4數據捲的備份、轉儲和遷移101
6.1.5Docker捲管理的問題101
6.2使用捲插件102
6.2.1捲插件簡介102
6.2.2捲插件的使用102
6.3捲插件剖析103
6.3.1捲插件工作原理104
6.3.2捲插件API接口105
6.3.3插件發現機制105
6.4已有的捲插件106
6.5本章小結107
第7章DockerAPI108
7.1關於DockerAPI108
7.1.1REST簡介108
7.1.2DockerAPI初探109
7.1.3DockerAPI種類110
7.2RESTfulAPI應用示例110
7.2.1前期準備111
7.2.2DockerAPI的基本示例116
7.3API的高級應用123
7.3.1場景概述123
7.3.2場景實現124
7.4本章小結131
第8章Docker安全132
8.1深入理解Docker的安全132
8.1.1Docker的安全性132
8.1.2Docker容器的安全性132
8.2安全策略133
8.2.1Cgroup133
8.2.2ulimit135
8.2.3容器組網135
8.2.4容器+全虛擬化136
8.2.5鏡像簽名136
8.2.6日誌審計136
8.2.7監控137
8.2.8文件系統級防護137
8.2. 9capability137
8.2.10SELinux138
8.2.11AppArmor142
8.2.12Seccomp144
8.2.13grsecurity145
8.2.14幾個與Docker安全相關的項目146
8.3安全加固146
8.3.1主機逃逸147
8.3.2安全加固之capability150
8.3.3安全加固之SELinux151
8.3 .4安全加固之AppArmor152
8.4Docker安全遺留問題153
8.4.1UserNamespace153
8.4.2非root運行Dockerdaemon153
8.4.3Docker熱升級153
8.4.4磁盤限額154
8.4.5網絡I/O154
8.5本章小結154
第9章Libcontainer簡介155
9.1引擎的引擎155
9.1.1關於容器的引擎155
9.1.2對引擎的理解156
9.2Libcontainer的技術原理157
9.2.1為容器創建新的命名空間158
9.2.2為容器創建新的Cgroup159
9.2. 3創建一個新的容器160
9.2.4Libcontainer的功能164
9.3關於runC166
9.3.1runC和Libcontainer的關係166
9.3.2runC的工作原理167
9.3.3runC的未來168
9.4本章小結169
第10章Docker實戰170
10.1Dockerfile簡介170
10.1.1一個簡單的例子171
10.1.2Dockerfile指令171
10.1.3再談Docker鏡像製作173
10.2基於Docker的Web應用和發布174
10.2.1選擇基礎鏡像174
10.2.2製作HTTPS服務器鏡像175
10.2.3將Web源碼導入Tomcat鏡像中178
10.2.4部署與驗證179
10.3為Web站點添加後台服務180
10.3.1代碼組織結構180
10.3.2組件鏡像製作過程183
10.3.3整體部署服務183
10.4本章小結184
第11章Docker集群管理185
11.1Compose185
11.1.1Compose概述185
11.1.2Compose配置簡介186
11.2Machine187
11.2.1Machine概述187
11.2.2Machine的基本概念及運行流程188
11.3Swarm188
11.3.1Swarm概述188
11.3.2Swarm內部架構189
11.4 Docker在OpenStack上的集群實戰190
11.5本章小結196
第12章Docker生態圈197
12.1Docker生態圈介紹197
12.2重點項目介紹198
12.2.1編排198
12.2.2容器操作系統203
12.2.3PaaS平臺206
12.3生態圈的未來發展208
12.3.1Docker公司的發展和完善方向208
12.3.2OCI組織209
12.3.3生態圈格局的分化和發展210
12.4本章小章211
第13章Docker測試212
13.1Docker自身測試212
13.1.1Docker自身的測試框架212
13.1.2運行Docker測試213
13.1.3在容器中手動運行測試用例215
13.1.4運行集成測試中單個或多個測試用例215
13.1.5Docker測試用例集介紹216
13.1.6Docker測試需要改進的方面217
13.1.7構建和測試文檔217
13.1.8其他Docker測試套218
13.2Docker技術在測試中的應用220
13.2.1Docker對測試的革命性影響221
13.2.2Docker技術適用範圍222
13.2.3Jenkins+Docker自動化環境配置223
13.3本章小結229
第14章參與Docker開發230
14.1改進Docker230
14.1.1報告問題230
14.1.2提交補丁231
14.2編譯自己的Docker235
14.2.1使用make工具編譯235
14.2.2手動啟動容器編譯235
14.2.3編譯動態鏈接的可執行文件237
14.2.4跑測試用例及小結237
14.3開源的溝通和交流238
14.3.1Docker溝通和交流的途徑238
14.3.2開源溝通和交流的建議238
14.4Docker項目的組織架構239
14.4.1管理模型239
14.4.2組織架構240
14.5本章小章242
附錄AFAQ243
附錄B常用Dockerfile247
附錄CDocker信息獲取渠道250
<作者介紹>
華為Docker實踐小組,致力於容器技術探索,結合華為CT/IT/Mobile等應用場景,重點在容器引擎、倉庫、網絡和捲存儲等多領域攻關;同時該團隊遵循開源精神,將開發過程中的諸多價值特性同步貢獻到D0cker社區中,目前在D0cker社區貢獻中全球排名穩居前三,國內排名第一。