第1章 簡介 1
1.1 Docker簡介 2
1.1.1 提供一個簡單、輕量的建模方式 2
1.1.2 職責的邏輯分離 3
1.1.3 快速、高效的開發生命周期 3
1.1.4 鼓勵使用麵嚮服務的架構 3
1.2 Docker組件 3
1.2.1 Docker客戶端和服務器 4
1.2.2 Docker鏡像 5
1.2.3 Registry 5
1.2.4 容器 5
1.3 能用Docker做什麼 6
1.4 Docker與配置管理 7
1.5 Docker的技術組件 8
1.6 本書的內容 9
1.7 Docker資源 10
第2章 安裝Docker 11
2.1 安裝Docker的先決條件 12
2.2 在Ubuntu和Debian中安裝Docker 13
2.2.1 檢查前提條件 14
2.2.2 安裝Docker 16
2.2.3 Docker與UFW 17
2.3 在Red Hat和Red Hat係發行版中安裝Docker 17
2.3.1 檢查前提條件 18
2.3.2 安裝Docker 19
2.3.3 在Red Hat係發行版中啓動Docker守護進程 21
2.4 在OS X中安裝Docker Toolbox 22
2.4.1 在OS X中安裝Docker Toolbox 22
2.4.2 在OS X中啓動Docker Toolbox 23
2.4.3 測試Docker Toolbox 24
2.5 在Windows中安裝Docker Toolbox 24
2.5.1 在Windows中安裝Docker Toolbox 25
2.5.2 在Windows中啓動Docker Toolbox 25
2.5.3 測試Docker Toolbox 26
2.6 使用本書的Docker Toolbox示例 26
2.7 Docker安裝腳本 27
2.8 二進製安裝 28
2.9 Docker守護進程 28
2.9.1 配置Docker守護進程 29
2.9.2 檢查Docker守護進程是否正在運行 30
2.10 升級Docker 31
2.11 Docker用戶界麵 32
2.12 小結 32
第3章 Docker入門 33
3.1 確保Docker已經就緒 33
3.2 運行我們的第一個容器 34
3.3 使用第一個容器 36
3.4 容器命名 38
3.5 重新啓動已經停止的容器 39
3.6 附著到容器上 40
3.7 創建守護式容器 40
3.8 容器內部都在乾些什麼 41
3.9 Docker日誌驅動 42
3.10 查看容器內的進程 43
3.11 Docker統計信息 44
3.12 在容器內部運行進程 44
3.13 停止守護式容器 45
3.14 自動重啓容器 46
3.15 深入容器 47
3.16 刪除容器 48
3.17 小結 49
第4章 使用Docker鏡像和倉庫 50
4.1 什麼是Docker鏡像 50
4.2 列齣鏡像 52
4.3 拉取鏡像 55
4.4 查找鏡像 57
4.5 構建鏡像 58
4.5.1 創建Docker Hub賬號 59
4.5.2 用Docker的commit命令創建鏡像 60
4.5.3 用Dockerfile構建鏡像 62
4.5.4 基於Dockerfile構建新鏡像 65
4.5.5 指令失敗時會怎樣 67
4.5.6 Dockerfile和構建緩存 68
4.5.7 基於構建緩存的Dockerfile模闆 69
4.5.8 查看新鏡像 70
4.5.9 從新鏡像啓動容器 70
4.5.10 Dockerfile指令 74
4.6 將鏡像推送到Docker Hub 88
4.7 刪除鏡像 92
4.8 運行自己的Docker Registry 94
4.8.1 從容器運行Registry 94
4.8.2 測試新Registry 95
4.9 其他可選Registry服務 96
4.10 小結 96
第5章 在測試中使用Docker 97
5.1 使用Docker測試靜態網站 97
5.1.1 Sample網站的初始Dockerfile 98
5.1.2 構建Sample網站和Nginx鏡像 100
5.1.3 從Sample網站和Nginx鏡像構建容器 102
5.1.4 修改網站 104
5.2 使用Docker構建並測試Web應用程序 105
5.2.1 構建Sinatra應用程序 105
5.2.2 創建Sinatra容器 107
5.2.3 擴展Sinatra應用程序來使用Redis 110
5.2.4 將Sinatra應用程序連接到Redis容器 113
5.2.5 Docker內部連網 114
5.2.6 Docker Networking 119
5.2.7 使用容器連接來通信 131
5.2.8 連接容器小結 132
5.3 Docker用於持續集成 132
5.3.1 構建Jenkins和Docker服務器 133
5.3.2 創建新的Jenkins作業 137
5.3.3 運行Jenkins作業 141
5.3.4 與Jenkins作業有關的下一步 143
5.3.5 Jenkins設置小結 143
5.4 多配置的Jenkins 143
5.4.1 創建多配置作業 143
5.4.2 測試多配置作業 147
5.4.3 Jenkins多配置作業小結 149
5.5 其他選擇 149
5.5.1 Drone 149
5.5.2 Shippable 149
5.6 小結 149
第6章 使用Docker構建服務 151
6.1 構建第一個應用 151
6.1.1 Jekyll基礎鏡像 152
6.1.2 構建Jekyll基礎鏡像 153
6.1.3 Apache鏡像 153
6.1.4 構建Jekyll Apache鏡像 154
6.1.5 啓動Jekyll網站 155
6.1.6 更新Jekyll網站 158
6.1.7 備份Jekyll捲 159
6.1.8 擴展Jekyll示例網站 161
6.2 使用Docker構建一個Java應用服務 161
6.2.1 WAR文件的獲取程序 161
6.2.2 獲取WAR文件 162
6.2.3 Tomecat7應用服務器 163
6.2.4 運行WAR文件 165
6.2.5 基於Tomcat應用服務器的構建服務 166
6.3 多容器的應用棧 169
6.3.1 Node.js鏡像 169
6.3.2 Redis基礎鏡像 172
6.3.3 Redis主鏡像 173
6.3.4 Redis副本鏡像 174
6.3.5 創建Redis後端集群 174
6.3.6 創建Node容器 178
6.3.7 捕獲應用日誌 180
6.3.8 Node程序棧的小結 183
6.4 不使用SSH管理Docker容器 183
6.5 小結 185
第7章 Docker編配和服務發現 186
7.1 Docker Compose 187
7.1.1 安裝Docker Compose 187
7.1.2 獲取示例應用 188
7.1.3 docker-compose.yml文件 191
7.1.4 運行Compose 193
7.1.5 使用Compose 195
7.1.6 Compose小結 197
7.2 Consul、服務發現和Docker 197
7.2.1 構建Consul鏡像 199
7.2.2 在本地測試Consul容器 202
7.2.3 使用Docker運行Consul集群 203
7.2.4 啓動具有自啓動功能的Consul節點 206
7.2.5 啓動其餘節點 207
7.2.6 配閤Consul,在Docker裏運行一個分布式服務 212
7.3 Docker Swarm 221
7.3.1 安裝Swarm 222
7.3.2 創建Swarm集群 222
7.3.3 創建容器 225
7.3.4 過濾器 227
7.3.5 策略 229
7.3.6 小結 230
7.4 其他編配工具和組件 230
7.4.1 Fleet和etcd 230
7.4.2 Kubernetes 231
7.4.3 Apache Mesos 231
7.4.4 Helios 231
7.4.5 Centurion 231
7.5 小結 231
第8章 使用Docker API 233
8.1 Docker API 233
8.2 初識Remote API 234
8.3 測試Docker Remote API 236
8.3.1 通過API來管理Docker鏡像 237
8.3.2 通過API管理Docker容器 239
8.4 改進TProv應用 242
8.5 對Docker Remote API進行認證 246
8.5.1 建立證書授權中心 246
8.5.2 創建服務器的證書簽名請求和密鑰 248
8.5.3 配置Docker守護進程 250
8.5.4 創建客戶端證書和密鑰 251
8.5.5 配置Docker客戶端開啓認證功能 253
8.6 小結 254
第9章 獲得幫助和對Docker進行改進 255
9.1 獲得幫助 255
9.1.1 Docker用戶、開發郵件列錶及論壇 255
9.1.2 IRC上的Docker 256
9.1.3 GitHub上的Docker 256
9.2 報告Docker的問題 257
9.3 搭建構建環境 257
9.3.1 安裝Docker 257
9.3.2 安裝源代碼和構建工具 257
9.3.3 檢齣源代碼 258
9.3.4 貢獻文檔 258
9.3.5 構建開發環境 259
9.3.6 運行測試 261
9.3.7 在開發環境中使用Docker 261
9.3.8 發起pull request 262
9.3.9 批準閤並和維護者 263
9.4 小結 264
· · · · · · (
收起)