更多書籍點擊進入>> CiCi島php
電子版僅供預覽及學習交流使用,下載後請24小時內刪除,支持正版,喜歡的請購買正版書籍html
Docker容器給軟件的開發、發佈和運行提供了簡單、快速和可靠的方法,尤爲是在動態和分佈式的環境中。經過這本實戰指南,你將學習到爲何容器如此重要,Docker能帶來哪些好處,以及怎樣把它變成開發流程的一部分。 本書適合軟件開發者、運維工程師和系統管理員,尤爲適合對DevOps模式感興趣的讀者。做者將帶領你從基礎知識出發,直到了解如何在多主機系統上運行數十個擁有聯網和調度能力的容器系統,重在讓你掌握使用Docker來開發、測試以及部署Web應用。 · 從構建和部署簡單Web應用開始瞭解Docker · 使用持續部署技術,把應用一天屢次推送到生產環境 · 學習各類不一樣的選項和技術,實現多容器的日誌記錄和監控 · 剖析聯網和服務發現:容器之間如何尋找對方,以及怎樣把它們鏈接起來 · 經過運用容器的編排和集羣功能,解決負載均衡、擴展、故障切換以及調度的問題 · 遵照縱深防護和*小權限的原則,確保系統安全 · 利用容器構建微服務架構git
Docker容器輕量和可移植的特性尤爲適用於動態和分佈式的環境,它的興起給軟件開發流程帶來了一場革命。Docker開發指南對Docker進行了全面講解,包括開發、生產以致維護的整個軟件生命週期,並對其中可能出現的一些問題進行了探討,如軟件版本差別、開發環境與生產環境的差別、系統安全問題,等等。github
Adrian Mouat Container Solutions公司首席科學家。參與過不少軟件項目,既有小型的Web應用,也有大型數據分析軟件。 譯者簡介 : 黃彥邦(Anthony Wong) Linux開發專家,熱衷於開源技術,從事Linux相關開發工做十多年,曾參與多個大型開源項目,如Debian GNU/Linux和Ubuntu,提交補丁無數。以推進Debian系統中文化以及網站和文檔翻譯爲目標,1998年成爲中國首位Debian計劃官方開發者。 我的網站:blog.anthonywong.netshell
前言 xi
第一部分 背景與基礎
第 1 章 何謂容器,爲什麼須要它 3
1.1 容器與虛擬機的比較 4
1.2 Docker與容器 5
1.3 Docker的歷史 7
1.4 插件與基礎設施 8
1.5 64位Linux 9
第 2 章 安裝 10
2.1 在Linux上安裝 Docker 10
2.1.1 將SELinux置於寬容模式下運行 11
2.1.2 不使用sudo命令執行Docker 11
2.2 在Mac OS及Windows上安裝Docker 12
2.3 快速確認 13
第 3 章 邁出第一步 15
3.1 運行第一個鏡像 15
3.2 基本命令 16
3.3 經過Dockerfile建立鏡像 20
3.4 使用寄存服務 22
3.5 使用Redis官方鏡像 24
3.6 總結 27
第 4 章 Docker基本概念 28
4.1 Docker系統架構 28
4.1.1 底層技術 29
4.1.2 周邊技術 30
4.1.3 Docker託管 31
4.2 鏡像是如何生成的 32
4.2.1 構建環境的上下文 32
4.2.2 鏡像層 33
4.2.3 緩存 35
4.2.4 基礎鏡像 35
4.2.5 Dockerfile指令 37
4.3 使容器與世界相連 39
4.4 容器互聯 40
4.5 利用數據卷和數據容器管理數據 41
4.5.1 共享數據 43
4.5.2 數據容器 44
4.6 Docker經常使用命令 45
4.6.1 run命令 46
4.6.2 容器管理 48
4.6.3 Docker信息 50
4.6.4 容器信息 50
4.6.5 鏡像管理 52
4.6.6 使用寄存服務器 54
4.7 總結 55
第二部分 Docker與軟件生命週期
第 5 章 在開發中應用Docker 59
5.1 說聲「Hello World!」 59
5.2 經過Compose實現自動化 67
5.3 總結 69
第 6 章 建立一個簡單的Web應用 71
6.1 建立一個基本網頁 72
6.2 利用現有鏡像 73
6.3 實現緩存功能 78
6.4 微服務 81
6.5 總結 81
第 7 章 鏡像分發 82
7.1 鏡像及鏡像庫的命名方式 82
7.2 Docker Hub 83
7.3 自動構建 85
7.4 私有分發 86
7.4.1 運行本身的寄存服務 86
7.4.2 商業寄存服務 92
7.5 縮減鏡像大小 92
7.6 鏡像出處 94
7.7 總結 94
第 8 章 Docker持續集成與測試 95
8.1 爲identidock添加單元測試 95
8.2 建立Jenkins容器 100
8.3 推送鏡像 106
8.3.1 給鏡像正確的標籤 106
8.3.2 準生產及生產環境 108
8.3.3 鏡像數量激增的問題 108
8.3.4 使用Docker部署Jenkins slaves 109
8.4 備份Jenkins數據 109
8.5 持續集成的託管解決方案 109
8.6 測試與微服務 110
8.7 總結 111
第 9 章 部署容器 113
9.1 經過Docker Machine配置資源 114
9.2 使用代理 117
9.3 執行選項 122
9.3.1 shell腳本 122
9.3.2 使用進程管理器(或用systemd控制全部進程) 124
9.3.3 使用配置管理工具 127
9.4 主機配置 130
9.4.1 選擇操做系統 130
9.4.2 選擇存儲驅動程序 130
9.5 專門的託管方案 132
9.5.1 Triton 132
9.5.2 谷歌容器引擎 134
9.5.3 亞馬遜EC2容器服務 135
9.5.4 Giant Swarm 136
9.6 持久性數據和生產環境容器 138
9.7 分享祕密信息 139
9.7.1 在鏡像中保存祕密信息 139
9.7.2 經過環境變量傳遞密鑰 139
9.7.3 經過數據卷傳遞密鑰 140
9.7.4 使用鍵值存儲 140
9.8 網絡鏈接 141
9.9 生產環境的寄存服務 141
9.10 持續部署 / 交付 141
9.11 總結 142
第 10 章 日誌記錄和監控 143
10.1 日誌記錄 144
10.1.1 Docker默認的日誌記錄 144
10.1.2 日誌彙總 145
10.1.3 使用ELK進行日誌記錄 146
10.1.4 經過syslog實現日誌管理 155
10.1.5 從文件抓取日誌 160
10.2 監控和警報 161
10.2.1 使用Docker工具進行監測 161
10.2.2 cAdvisor 162
10.2.3 集羣解決方案 163
10.3 商用的監聽及日誌記錄解決方案 166
10.4 總結 166
第三部分 工具和技術
第 11 章 聯網和服務發現 169
11.1 大使容器 170
11.2 服務發現 173
11.2.1 etcd 173
11.2.2 SkyDNS 177
11.2.3 Consul 181
11.2.4 服務註冊 185
11.2.5 其餘解決方案 186
11.3 聯網選項 187
11.3.1 網橋模式 187
11.3.2 主機模式 188
11.3.3 容器模式 188
11.3.4 未聯網模式 188
11.4 全新的Docker聯網功能 188
11.5 網絡解決方案 190
11.5.1 Overlay 191
11.5.2 Weave 193
11.5.3 Flannel 196
11.5.4 Calico項目 201
11.6 總結 205
第 12 章 編排、集羣和管理 207
12.1 集羣和編排工具 208
12.1.1 Swarm 208
12.1.2 fleet 214
12.1.3 Kubernetes 219
12.1.4 Mesos和Marathon 226
12.2 容器管理平臺 235
12.2.1 Rancher 236
12.2.2 Clocker 237
12.2.3 Tutum 238
12.3 總結 239
第 13 章 容器安全與限制容器 241
13.1 須要考慮的事項 242
13.2 縱深防護 244
13.3 如何保護identidock 245
13.4 以主機隔離容器 246
13.5 進行更新 246
13.6 鏡像出處 249
13.6.1 Docker摘要 250
13.6.2 Docker的內容信任機制 250
13.6.3 可複製及可信任的Dockerfile 254
13.7 安全建議 256
13.7.1 設置用戶 256
13.7.2 限制容器聯網 257
13.7.3 刪除setuid和setgid的二進制文件 258
13.7.4 限制內存使用 259
13.7.5 限制CPU使用 260
13.7.6 限制從新啓動 261
13.7.7 限制文件系統 261
13.7.8 限制內核能力 262
13.7.9 應用資源限制 263
13.8 運行加固內核 264
13.9 Linux安全模塊 265
13.9.1 SELinux 265
13.9.2 AppArmor 268
13.10 審覈 268
13.11 事件響應 269
13.12 將來特性 269
13.13 總結 270
做者簡介 271
關於封面 271
緩存
「《Docker開發指南》詳盡、實用,尤其難能難得的是,書中介紹了怎樣在Docker的生態系統中把容器化的微服務從開發/測試環境遷移到生產環境。」——Adrian Cockcroft,Battery Ventures技術分析師 「《Docker開發指南》對Docker和容器生態進行了深刻而全面的介紹。這本書注重實踐,包含大量範例,所以把其中的概念和技巧運用到實際項目中將很是容易。」——Pini Reznik,Container Solutions CTO安全
本篇文章由一文多發平臺ArtiPub自動發佈服務器