第1章 利用Docker容器持續集成 1
1.1 完全Docker化的手動持續集成流程 3
1.2 運行單元測試並構建服務的二進製文件 5
1.3 構建服務鏡像 7
1.4 運行模擬測試 10
1.5 推送鏡像到鏡像庫 12
第2章 搭建並運行Swarm集群 17
2.1 可擴展性 18
2.2 軸嚮擴展 19
X軸擴展 20
Y軸擴展 21
Z軸擴展 22
2.3 集群 22
2.4 Docker Swarm模式 23
2.5 搭建一個Swarm集群 25
2.6 在Swarm集群上部署服務 28
2.7 擴展服務 30
2.8 故障轉移 31
2.9 現在怎麼辦 32
第3章 Docker Swarm網絡和反嚮代理 33
3.1 搭建一個集群 34
3.2 以高可用性運行安全的和容錯的服務需求 35
3.3 隔離數據庫的運行 37
3.4 通過反嚮代理運行服務 41
3.5 創建一個反嚮代理服務負責根據基URL路由請求 42
3.6 對一個服務的所有實例實施負載均衡的請求 47
3.7 現在怎麼辦 50
第4章 Swarm集群內的服務發現 51
4.1 沒有注冊中心Docker Swarm會怎樣 51
4.2 獨立的Docker Swarm加上服務發現會是什麼樣的 55
4.3 Swarm集群中的服務發現 56
4.4 我們需要服務發現嗎 57
4.5 將Consul設置為Swarm集群內的服務注冊中心 58
4.6 縮放有狀態實例時齣現的問題 63
4.7 使用服務注冊中心來存儲狀態 64
4.8 發現組成服務的所有實例的地址 69
4.9 使用服務注冊中心或鍵值存儲來存儲服務狀態 71
4.10 現在怎麼辦 74
第5章 使用Docker容器進行持續交付和部署 75
5.1 定義持續交付環境 76
5.2 搭建持續交付集群 77
5.3 使用節點標簽來約束服務 80
5.4 創建服務 83
5.5 示範持續交付步驟 85
5.6 從持續交付到持續部署走得更遠 90
5.7 現在怎麼辦 91
第6章 使用Jenkins自動化持續部署流程 93
6.1 Jenkins架構 93
6.2 搭建生産環境 94
6.3 Jenkins服務 95
6.4 Jenkins故障轉移 99
6.5 Jenkins代理 100
6.6 在生産和類生産環境中創建服務 108
6.7 使用Jenkins自動化持續部署流程 110
6.8 創建Jenkins流水綫作業 111
6.9 定義流水綫節點 113
6.10 定義流水綫階段 115
6.11 定義流水綫步驟 116
6.12 現在怎麼辦 121
第7章 探索Docker遠程API 123
7.1 搭建環境 124
7.2 通過Docker Remote API操作Docker Swarm 125
7.3 使用Docker Remote API自動配置代理 134
7.4 將Swarm Listener與代理相結閤 135
7.5 自動重新配置代理 136
7.6 從代理中刪除服務 138
7.7 現在怎麼辦 138
第8章 使用Docker Stack和Compose YAML文件來
部署Swarm Services 141
8.1 搭建Swarm集群 142
8.2 通過Docker Stack命令創建Swarm服務 142
8.3 部署更多stack 145
8.4 stack,用還是不用 147
8.5 清理 147
第9章 定義日誌策略 149
9.1 集中日誌的需求 151
9.2 將ElasticSearch設置為日誌數據庫 153
9.3 將LogStash設置為日誌解析器和轉發器 154
9.4 從Swarm集群內任意位置運行的所有容器轉發日誌 157
9.5 探索日誌 161
9.6 討論其他日誌解決方案 166
9.7 現在怎麼辦 167
第10章 收集指標與監控集群 169
10.1 集群監控係統的需求 169
10.2 選擇正確的數據庫來存儲係統指標 171
10.3 創建集群 173
10.4 Prometheus指標 175
10.5 導齣係統範圍的指標 176
10.6 拉取、查詢和可視化Prometheus指標 181
10.7 使用Grafana創建看闆 188
10.8 在Grafana中探索Docker Swarm和容器概覽儀錶闆 195
10.9 通過儀錶闆指標調整服務 201
10.10 監控最佳實踐 204
10.11 現在怎麼辦 205
第11章 擁抱毀滅:寵物與牛 207
11.1 現在怎麼辦 209
第12章 在Amazon Web Services中創建和管理Docker Swarm集群 211
12.1 安裝AWS CLI並設置環境變量 212
12.2 使用Docker Machine和AWS CLI來配置Swarm集群 215
12.3 使用Docker在AWS中建立Swarm集群 223
12.4 在AWS中使用Docker自動配置Swarm集群 232
12.5 使用Packer和Terraform來創建Swarm集群 236
12.6 使用Packer創建Amazon機器鏡像 236
12.7 在AWS中使用Terraform創建Swarm集群 241
12.8 在AWS中選擇正確的工具創建和管理Swarm集群 257
12.9 是使用還是不使用Docker Machine 257
12.10 是使用還是不使用Docker for AWS 258
12.11 是使用還是不使用Terraform 260
12.12 最後的結論 263
第13章 在DigitalOcean中創建和管理Docker Swarm集群 265
13.1 設置環境變量 267
13.2 使用Docker Machine和DigitalOcean API創建Swarm集群 269
13.3 使用Packer和Terraform創建Swarm集群 275
13.4 使用Packer創建DigitalOcean快照 276
13.5 在DigitalOcean中使用Terraform創建一個Swarm集群 280
13.6 選擇閤適的工具創建和管理DigitalOcean中的Swarm集群 298
13.7 是使用還是不使用Docker Machine 299
13.8 是使用還是不使用Terraform 300
13.9 最後的結論 301
13.10 是使用還是不使用DigitalOcean 302
第14章 在Swarm集群中創建和管理有狀態的服務 303
14.1 探索十二因素應用程序方法論 303
14.2 設置Swarm集群和代理 308
14.3 運行不需要數據持久性的有狀態服務 312
14.4 在主機上持久化有狀態的服務 317
14.5 在網絡文件係統上持久化有狀態服務 318
14.6 數據捲的編排 323
14.7 使用REX-Ray持久化有狀態服務 323
14.8 為有狀態服務選擇持久性方法 329
14.9 在Packer和Terraform中加入REX-Ray 331
14.10 無復製的有狀態服務持久化 337
14.11 使用同步和復製持久化有狀態服務 337
14.12 持久化Docker Flow Proxy的狀態 338
14.13 持久化MongoDB的狀態 340
14.14 通過Swarm服務初始化MongoDB副本集 349
14.15 現在怎麼辦 353
第15章 在Docker Swarm集群中管理secrets 355
15.1 創建secrets 355
15.2 使用secrets 357
15.3 一個使用secrets的真實世界的例子 358
15.4 在Docker Compose中使用secrets 359
15.5 使用secrets的常用方法 361
15.6 現在怎麼辦 362
附錄A 使用Docker和Prometheus監控你的GitHub庫 363
A.1 Docker、Prometheus和Grafana 363
A.2 入門 364
A.3 配置 364
A.4 後續配置 365
A.5 安裝dashboard 366
A.6 結論 367
索引 369
· · · · · · (
收起)