Docker技術(shù)入門與實(shí)戰(zhàn) 第3版
定 價(jià):89 元
叢書名:華章IT
- 作者:楊保華 戴王劍 曹亞侖
- 出版時(shí)間:2018/9/1
- ISBN:9787111608523
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP316.85
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書從Docker基本原理開始,深入淺出地講解Docker的構(gòu)建與操作,內(nèi)容系統(tǒng)全面,可幫助開發(fā)人員、運(yùn)維人員快速部署Docker應(yīng)用。本書分為四大部分:基礎(chǔ)入門、實(shí)戰(zhàn)案例、進(jìn)階技能、開源項(xiàng)目,*部分(第1~8章)介紹Docker與虛擬化技術(shù)的基本概念,包括安裝、鏡像、容器、倉庫、數(shù)據(jù)卷、端口映射等;第二部分(第9~16章)通過案例介紹Docker的應(yīng)用方法,包括與各種操作系統(tǒng)平臺(tái)、SSH服務(wù)的鏡像、Web服務(wù)器與應(yīng)用、數(shù)據(jù)庫的應(yīng)用、各類編程語言的接口、容器云等,還介紹了作者在容器實(shí)戰(zhàn)中的思考與經(jīng)驗(yàn)總結(jié);第三部分(第17~21章)介紹一些進(jìn)階技能,如Docker核心技術(shù)實(shí)現(xiàn)原理、安全、高級(jí)網(wǎng)絡(luò)配置、libnetwork插件化網(wǎng)絡(luò)功能等;第四部分(第22~28章)介紹與容器開發(fā)相關(guān)的開源項(xiàng)目,包括Etcd、Docker Machine、Docker Compose、Docker Swarm、Mesos、Kubernetes等。第3版根據(jù) Docker 18.x 系列版本對(duì)全書內(nèi)容進(jìn)行了全面修訂。
入門Docker的首本書,經(jīng)典暢銷書升級(jí),系統(tǒng)化掌握容器技術(shù)棧,第3版基于 Docker 新 18.x 系列版本。
Docker 誕生于云計(jì)算第一個(gè)十年的尾巴上。眨眼間,它所代表的現(xiàn)代容器技術(shù),已經(jīng)占據(jù)了云計(jì)算的半壁江山。
過去十年里,信息科技依然保持了飛躍式的發(fā)展:深度學(xué)習(xí)的突破給人類擺脫重復(fù)勞動(dòng)帶來曙光;分布式賬本的崛起為賽博空間奠定信任基礎(chǔ);物聯(lián)網(wǎng)的成熟讓整個(gè)星球都將變得更加智慧……這一切都離不開底層計(jì)算技術(shù)的持續(xù)演化,特別是新一代容器化計(jì)算平臺(tái),為經(jīng)典計(jì)算結(jié)構(gòu)釋放出了巨大的潛力。
而計(jì)算科技的進(jìn)步,一直以來就與開源技術(shù)和開放文化息息相關(guān)。無論是早期的 Unix/Linux 操作系統(tǒng),還是后來包括 Docker 在內(nèi)的諸多應(yīng)用軟件,都積極推動(dòng)了整個(gè)信息產(chǎn)業(yè)的發(fā)展。當(dāng)下正是新一波科技浪潮來臨前的關(guān)鍵時(shí)期,掌握最前沿的科技成果,學(xué)習(xí)最先進(jìn)的開源工具,對(duì)于推動(dòng)我國乃至全球信息產(chǎn)業(yè)的進(jìn)步都至關(guān)重要。
信息科技是全人類的寶貴財(cái)富,也是現(xiàn)代文明的基礎(chǔ)支撐。每一個(gè)信息行業(yè)從業(yè)人員都應(yīng)該意識(shí)到,持續(xù)推動(dòng)科技創(chuàng)新和文明進(jìn)步,是時(shí)代賦予的重要責(zé)任。
Docker 容器技術(shù)臻于成熟后,社區(qū)涌現(xiàn)出眾多優(yōu)秀的開源項(xiàng)目。這些項(xiàng)目或讓計(jì)算更加高效便捷,或讓平臺(tái)更加穩(wěn)定智能,共同構(gòu)建了繁榮的容器計(jì)算生態(tài)。圍繞這些最新進(jìn)展,本書第3版重點(diǎn)介紹了容器核心技術(shù)的最新特性,讓讀者可以更好地掌握和使用最先進(jìn)的容器技術(shù)。
出版之際,本書開源版本的訪問量已經(jīng)突破一千萬,真誠感謝近百位同仁對(duì)圖書內(nèi)容的積極建議和反饋。
祝愿世界更加美好,祝愿人人都能快樂幸福!
楊保華
2018年7月于北京
楊保華:博士,現(xiàn)為甲骨文架構(gòu)師。研究方向包括分布式系統(tǒng)、大數(shù)據(jù)和算法設(shè)計(jì)等,是容器、網(wǎng)絡(luò)虛擬化、區(qū)塊鏈等技術(shù)的早期研究者和布道者。他倡導(dǎo)技術(shù)創(chuàng)新與產(chǎn)品、市場(chǎng)相結(jié)合,曾負(fù)責(zé)多個(gè)大型平臺(tái)的架構(gòu)和設(shè)計(jì),以及企業(yè)系統(tǒng)的實(shí)現(xiàn)和實(shí)施。他熱愛開源文化,曾積極貢獻(xiàn)了多個(gè)開源項(xiàng)目。
第3版前言
第一部分 基礎(chǔ)入門
第1章 初識(shí)Docker與容器 3
1.1 什么是Docker 3
1.2 為什么要使用Docker 6
1.3 Docker與虛擬化 8
1.4 本章小結(jié) 9
第2章 核心概念與安裝配置 10
2.1 核心概念 10
2.2 安裝Docker引擎 11
2.2.1 Ubuntu 環(huán)境下安裝 Docker 12
2.2.2 CentOS 環(huán)境下安裝 Docker 14
2.2.3 通過腳本安裝 15
2.2.4 macOS環(huán)境下安裝 Docker 15
2.2.5 Windows環(huán)境下安裝Docker 23
2.3 配置 Docker 服務(wù) 26
2.4 推薦實(shí)踐環(huán)境 27
2.5 本章小結(jié) 27
第3章 使用Docker鏡像 28
3.1 獲取鏡像 28
3.2 查看鏡像信息 30
3.3 搜尋鏡像 32
3.4 刪除和清理鏡像 33
3.5 創(chuàng)建鏡像 35
3.6 存出和載入鏡像 36
3.7 上傳鏡像 37
3.8 本章小結(jié) 38
第4章 操作Docker容器 39
4.1 創(chuàng)建容器 39
4.2 停止容器 44
4.3 進(jìn)入容器 46
4.4 刪除容器 47
4.5 導(dǎo)入和導(dǎo)出容器 48
4.6 查看容器 49
4.7 其他容器命令 50
4.8 本章小結(jié) 52
第5章 訪問 Docker 倉庫 53
5.1 Docker Hub 公共鏡像市場(chǎng) 53
5.2 第三方鏡像市場(chǎng) 55
5.3 搭建本地私有倉庫 56
5.4 本章小結(jié) 58
第6章 Docker數(shù)據(jù)管理 59
6.1 數(shù)據(jù)卷 59
6.2 數(shù)據(jù)卷容器 60
6.3 利用數(shù)據(jù)卷容器來遷移數(shù)據(jù) 62
6.4 本章小結(jié) 62
第7章 端口映射與容器互聯(lián) 63
7.1 端口映射實(shí)現(xiàn)容器訪問 63
7.2 互聯(lián)機(jī)制實(shí)現(xiàn)便捷互訪 64
7.3 本章小結(jié) 67
第8章 使用Dockerfile創(chuàng)建鏡像 68
8.1 基本結(jié)構(gòu) 68
8.2 指令說明 70
8.2.1 配置指令 71
8.2.2 操作指令 74
8.3 創(chuàng)建鏡像 75
8.3.1 命令選項(xiàng) 76
8.3.2 選擇父鏡像 77
8.3.3 使用.dockerignore文件 77
8.3.4 多步驟創(chuàng)建 78
8.4 最佳實(shí)踐 79
8.5 本章小結(jié) 80
第二部分 實(shí)戰(zhàn)案例
第9章 操作系統(tǒng) 83
9.1 BusyBox 83
9.2 Alpine 85
9.3 Debian/Ubuntu 86
9.4 CentOS/Fedora 88
9.5 本章小結(jié) 89
第10章 為鏡像添加SSH服務(wù) 90
10.1 基于commit命令創(chuàng)建 90
10.2 使用Dockerfile創(chuàng)建 93
10.3 本章小結(jié) 95
第11章 Web服務(wù)與應(yīng)用 96
11.1 Apache 96
11.2 Nginx 100
11.3 Tomcat 104
11.4 Jetty 108
11.5 LAMP 109
11.6 持續(xù)開發(fā)與管理 111
11.7 本章小結(jié) 114
第12章 數(shù)據(jù)庫應(yīng)用 115
12.1 MySQL 115
12.2 Oracle Database XE 117
12.3 MongoDB 118
12.4 Redis 124
12.5 Cassandra 126
12.6 本章小結(jié) 129
第13章 分布式處理與大數(shù)據(jù)平臺(tái) 130
13.1 Hadoop 130
13.2 Spark 133
13.3 Storm 136
13.4 Elasticsearch 140
13.5 本章小結(jié) 141
第14章 編程開發(fā) 142
14.1 C/C++ 142
14.2 Java 146
14.3 Python 149
14.3.1 使用Python官方鏡像 150
14.3.2 使用PyPy 151
14.3.3 使用 Flask 151
14.3.4 相關(guān)資源 154
14.4 JavaScript 154
14.4.1 使用Node.js 154
14.4.2 相關(guān)資源 158
14.5 Go 158
14.6 本章小結(jié) 161
第15章 容器與云服務(wù) 162
15.1 公有云容器服務(wù) 162
15.1.1 AWS 162
15.1.2 Google Cloud Platform 163
15.1.3 Azure 164
15.1.4 騰訊云 165
15.1.5 阿里云 165
15.1.6 華為云 166
15.1.7 UCloud 167
15.2 容器云服務(wù) 168
15.3 阿里云容器服務(wù) 172
15.4 時(shí)速云介紹 174
15.5 本章小結(jié) 175
第16章 容器實(shí)戰(zhàn)思考 176
16.1 Docker 為什么會(huì)成功 176
16.2 研發(fā)人員該如何看待容器 177
16.3 容器化開發(fā)模式 178
16.4 容器與生產(chǎn)環(huán)境 180
16.5 本章小結(jié) 182
第三部分 進(jìn)階技能
第17章 核心實(shí)現(xiàn)技術(shù) 185
17.1 基本架構(gòu) 185
17.2 命名空間 187
17.3 控制組 191
17.4 聯(lián)合文件系統(tǒng) 193
17.5 Linux網(wǎng)絡(luò)虛擬化 195
17.6 本章小結(jié) 197
第18章 配置私有倉庫 199
18.1 安裝Docker Registry 199
18.2 配置TLS證書 201
18.3 管理訪問權(quán)限 202
18.4 配置Registry 205
18.5 批量管理鏡像 211
18.6 使用通知系統(tǒng) 214
18.7 本章小結(jié) 217
第19章 安全防護(hù)與配置 218
19.1 命名空間隔離的安全 218
19.2 控制組資源控制的安全 219
19.3 內(nèi)核能力機(jī)制 219
19.4 Docker服務(wù)端的防護(hù) 221
19.5 更多安全特性的使用 221
19.6 使用第三方檢測(cè)工具 222
19.6.1 Docker Bench 222
19.6.2 clair 223
19.7 本章小結(jié) 224
第20章 高級(jí)網(wǎng)絡(luò)功能 225
20.1 啟動(dòng)與配置參數(shù) 225
20.2 配置容器DNS和主機(jī)名 227
20.3 容器訪問控制 228
20.4 映射容器端口到宿主主機(jī)的實(shí)現(xiàn) 229
20.5 配置容器網(wǎng)橋 231
20.6 自定義網(wǎng)橋 232
20.7 使用OpenvSwitch網(wǎng)橋 233
20.8 創(chuàng)建一個(gè)點(diǎn)到點(diǎn)連接 235
20.9 本章小結(jié) 236
第21章 libnetwork插件化網(wǎng)絡(luò)功能 237
21.1 容器網(wǎng)絡(luò)模型 237
21.2 Docker網(wǎng)絡(luò)命令 238
21.3 構(gòu)建跨主機(jī)容器網(wǎng)絡(luò) 241
21.4 本章小結(jié) 243
第四部分 開源項(xiàng)目
第22章 Etcd—高可用的鍵值數(shù)據(jù)庫 247
22.1 Etcd簡介 247
22.2 安裝和使用Etcd 248
22.3 使用客戶端命令 253
22.3.1 數(shù)據(jù)類操作 255
22.3.2 非數(shù)據(jù)類操作 258
22.4 Etcd集群管理 260
22.4.1 構(gòu)建集群 260
22.4.2 集群參數(shù)配置 263
22.5 本章小結(jié) 264
第23章 Docker三劍客之Machine 265
23.1 Machine簡介 265
23.2 安裝Machine 265
23.3 使用Machine 266
23.4 Machine命令 268
23.5 本章小結(jié) 272
第24章 Docker三劍客之Compose 273
24.1 Compose簡介 273
24.2 安裝與卸載 274
24.3 Compose模板文件 277
24.4 Compose命令說明 292
24.5 Compose環(huán)境變量 299
24.6 Compose應(yīng)用案例一:Web負(fù)載均衡 300
24.7 Compose應(yīng)用案例二:大數(shù)據(jù)Spark集群 304
24.8 本章小結(jié) 309
第25章 Docker三劍客之Swarm 310
25.1 Swarm簡介 310
25.2 基本概念 311
25.3 使用Swarm 313
25.4 使用服務(wù)命令 316
25.5 本章小結(jié) 319
第26章 Mesos—優(yōu)秀的集群資源調(diào)度平臺(tái) 321
26.1 簡介 321
26.2 Mesos安裝與使用 322
26.3 原理與架構(gòu) 330
26.3.1 架構(gòu) 330
26.3.2 基本單元 331
26.3.3 調(diào)度 331
26.3.4 高可用性 332
26.4 Mesos配置解析 333
26.4.1 通用項(xiàng) 333
26.4.2 master專屬配置項(xiàng) 333
26.4.3 slave專屬配置項(xiàng) 335
26.5 日志與監(jiān)控 338
26.6 常見應(yīng)用框架 340
26.7 本章小結(jié) 341
第27章 Kubernetes—生產(chǎn)級(jí)容器集群平臺(tái) 343
27.1 簡介 343
27.2 核心概念 345
27.3 資源抽象對(duì)象 348
27.3.1 容器組 348
27.3.2 服務(wù) 349
27.3.3 存儲(chǔ)卷 350
27.4 控制器抽象對(duì)象 351
27.5 其他抽象對(duì)象 353
27.6 快速體驗(yàn) 355
27.7 重要組件 359
27.7.1 Etcd 360
27.7.2 kube-apiserver 360
27.7.3 kube-scheduler 361
27.7.4 kube-controller-manager 362
27.7.5 kubelet 363
27.7.6 kube-proxy 364
27.8 使用kubectl 365
27.8.1 獲取kubectl 365
27.8.2 命令格式 366
27.8.3 全局參數(shù) 367
27.8.4 通用子命令 369
27.9 網(wǎng)絡(luò)設(shè)計(jì) 372
27.10 本章小結(jié) 374
第28章 其他相關(guān)項(xiàng)目 375
28.1 持續(xù)集成 375
28.2 容器管理 377
28.2.1 Portainer 377
28.2.2 Panamax 378
28.2.3 Seagull 378
28.3 編程開發(fā) 380
28.4 網(wǎng)絡(luò)支持 381
28.4.1 Pipework 381
28.4.2 Flannel項(xiàng)目 382
28.4.3 Weave Net項(xiàng)目 382
28.4.4 Calico項(xiàng)目 383
28.5 日志處理 383
28.6 服務(wù)代理 385
28.7 標(biāo)準(zhǔn)與規(guī)范 389
28.8 其他項(xiàng)目 392
28.9 本章小結(jié) 396
附錄
附錄A 常見問題總結(jié) 398
附錄B Docker命令查詢 404
附錄C 參考資源鏈接 411