內容簡介
《Docker技術入門與實戰》分為三大部分:Docker入門、實戰案例和高級話題。第一部分(第1~8章)介紹Docker與虛擬化技術的基本概念,包括安裝、鏡像、容器、倉庫、數據管理等;第二部分(第9~17章)通過案例介紹Docker的套用方法,包括與各種作業系統平台、SSH服務的鏡像、Web伺服器與套用、資料庫的套用、各類程式語言的接口、私有倉庫等;第三部分(第18~21章)是一些高級話題,如Docker核心技術、安全、高級網路配置、相關項目等。
《Docker技術入門與實戰》從基本原理開始入手,深入淺出地講解Docker的構建與操作,內容系統全面,可幫助開發人員、運維人員快速部署套用。
作者簡介
楊保華 博士,清華大學畢業, IBM 中國研究院研究員。主要從事數據中心網路解決方案的研發與部署,技術方向包括雲計算、軟體定義網路(SDN)、網路安全等,是國內較早從事 SDN 和網路虛擬化相關技術的推廣者,同時也是 DockerPool 開源社區的發起人之一。
戴王劍 資深架構師,從事計算機網路、伺服器架構設計,負責過多個省級項目的架構設計。熱衷開源事業,是 DockerPool 開源社區的發起人之一。
曹亞侖 85後,全棧 Web 開發者,擅長並專注於 SaaS 系統架構設計與研發, 興趣為 PaaS 和智慧型可穿戴設備。出版有譯著《Arduino 無線感測器網路實踐指南》以及開源圖書《程式設計師禪修指南》。
目錄
序一
序二
前言
作者簡介
第一部分 Docker入門
第1章 初識Docker 3
1.1 什麼是Docker 3
1.2 為什麼要使用Docker 5
1.3 虛擬化與Docker 7
1.4 本章小結 8
第2章 Docker的核心概念和安裝 9
2.1 核心概念 9
2.2 安裝Docker 11
2.3 本書環境介紹 14
2.4 本章小結 15
第3章 鏡像 16
3.1 獲取鏡像 16
3.2 查看鏡像信息 17
3.3 搜尋鏡像 20
3.4 刪除鏡像 21
3.5 創建鏡像 23
3.6 存出和載入鏡像 24
3.7 上傳鏡像 25
3.8 本章小結 25
第4章 容器 26
4.1 創建容器 26
4.2 終止容器 28
4.3 進入容器 29
4.4 刪除容器 31
4.5 導入和導出容器 31
4.6 本章小結 32
第5章 倉庫 33
5.1 Docker Hub 33
5.2 Docker Pool簡介 35
5.3 創建和使用私有倉庫 36
5.4 本章小結 38
第6章 數據管理 39
6.1 數據卷 39
6.2 數據卷容器 40
6.3 利用數據卷容器遷移數據 42
6.4 本章小結 42
第7章 網路基礎配置 43
7.1 連線埠映射實現訪問容器 43
7.2 容器互聯實現容器間通信 45
7.3 本章小結 47
第8章 使用Dockerfile創建鏡像 48
8.1 基本結構 48
8.2 指令 49
8.3 創建鏡像 53
8.4 本章小結 53
第二部分 實戰案例
第9章 作業系統 57
9.1 Busybox 57
9.2 Debian/Ubuntu 60
9.3 CentOS/Fedora 62
9.4 CoreOS 64
9.5 本章小結 69
第10章 創建支持SSH服務的鏡像 70
10.1 基於commit命令創建 70
10.2 使用Dockerfile創建 74
10.3 本章小結 79
第11章 Web伺服器與套用 80
11.1 Apache 80
11.2 Nginx 86
11.3 Tomcat 95
11.4 Weblogic 102
11.5 LAMP 119
11.5.1 下載LAMP鏡像 119
11.5.2 使用默認方式啟動LAMP容器 119
11.5.3 部署自己的PHP套用 120
11.5.4 在PHP程式中連線資料庫 120
11.6 CMS 121
11.7 本章小結 123
第12章 資料庫套用 124
12.1 MySQL 124
12.2 Oracle XE 129
12.3 MongoDB 130
12.4 本章小結 134
第13章 程式語言 136
13.1 PHP 136
13.1.1 PHP技術棧 136
13.1.2 PHP常用框架 142
13.1.3 相關資源 147
13.2 C/C++ 147
13.2.1 GCC 147
13.2.2 LLVM 150
13.2.3 Clang 150
13.3 Java 151
13.4 Python 153
13.4.1 Python技術棧 153
13.4.2 Flask 155
13.4.3 Django 157
13.4.4 相關資源 159
13.5 Perl 160
13.5.1 Perl技術棧 160
13.5.2 Catalyst 161
13.5.3 相關資源 161
13.6 Ruby 162
13.6.1 Ruby技術棧 162
13.6.2 JRuby 163
13.6.3 Ruby on Rails 164
13.6.4 Sinatra 165
13.6.5 相關資源 166
13.7 JavaScript 166
13.7.1 JavaScript技術棧 166
13.7.2 Node.js 167
13.7.3 Express 168
13.7.4 AngularJS 170
13.7.5 相關資源 171
13.8 Go 172
13.8.1 Go技術棧 172
13.8.2 Beego 174
13.8.3 Revel 175
13.8.4 Martini 177
13.8.5 相關資源 179
13.9 本章小結 180
第14章 使用私有倉庫 181
14.1 使用docker-registry 181
14.2 用戶認證 183
14.3 使用私有倉庫批量上傳鏡像 186
14.4 倉庫配置檔案 189
14.5 本章小結 196
第15章 構建Docker容器集群 197
15.1 使用自定義網橋連線跨主機容器 197
15.2 使用Ambassador容器 199
15.3 本章小結 200
第16章 在公有雲上使用Docker 202
16.1 公有雲上安裝Docker 202
16.1.1 CentOS 6.5系統 202
16.1.2 Ubuntu 14.04系統 207
16.2 阿里雲Docker的特色服務 207
16.3 本章小結 213
第17章 Docker實踐之道 214
17.1 個人學習之道 214
17.1.1 溫故而知新 215
17.1.2 眾人拾柴火焰高 216
17.2 技術創業之道 217
17.3 中小型企業實踐之道 218
17.3.1 開發、測試和發布中套用Docker 218
17.3.2 套用Docker到生產環境 220
17.4 本章小結 220
第三部分 高級話題
第18章 Docker核心技術 223
18.1 基本架構 223
18.2 命名空間 225
18.3 控制組 227
18.4 聯合檔案系統 229
18.5 Docker網路實現 230
18.6 本章小結 232
第19章 Docker安全 233
19.1 命名空間隔離的安全 233
19.2 控制組資源控制的安全 234
19.3 核心能力機制 234
19.4 Docker服務端的防護 235
19.5 其他安全特性 236
19.6 本章小結 237
第20章 高級網路配置 238
20.1 網路啟動與配置參數 238
20.2 配置容器DNS和主機名 240
20.3 容器訪問控制 241
20.4 映射容器連線埠到宿主主機的實現 243
20.5 配置docker0網橋 244
20.6 自定義網橋 245
20.7 創建一個點到點連線 246
20.8 工具和項目 247
20.9 本章小結 251
第21章 Docker相關項目 252
21.1 平台即服務方案 252
21.2 持續集成 253
21.3 管理工具 256
21.4 編程開發 261
21.5 其他項目 262
21.6 本章小結 267
附 錄
附錄A 常見問題匯總 270
附錄B 常見倉庫 276
附錄C Docker命令查詢 294
附錄D Docker資源連結 299