Docker 技術入門與實戰, 3/e

Docker 技術入門與實戰, 3/e

作者: 楊保華 戴王劍 曹亞侖
出版社: 機械工業
出版在: 2018-10-01
ISBN-13: 9787111608523
ISBN-10: 7111608526
裝訂格式: 平裝





內容描述


本書從Docker基本原理開始,深入淺出地講解Docker的構建與操作,內容系統全面,可幫助開發人員、運維人員快速部署Docker應用。本書分為四大部分:基礎入門、實戰案例、進階技能、開源項目,第一部分(第1~8章)介紹Docker與虛擬化技術的基本概念,包括安裝、鏡像、容器、倉庫、數據捲、埠映射等;第二部分(第9~16章)通過案例介紹Docker的應用方法,包括與各種操作系統平臺、SSH服務的鏡像、Web服務器與應用、數據庫的應用、各類編程語言的接口、容器雲等,還介紹了作者在容器實戰中的思考與經驗總結;第三部分(第17~21章)介紹一些進階技能,如Docker核心技術實現原理、安全、高級網絡配置、libnetwork插件化網絡功能等;第四部分(第22~28章)介紹與容器開發相關的開源項目,包括Etcd、Docker Machine、Docker Compose、Docker Swarm、Mesos、Kubernetes等。第3版根據 Docker 18.x 系列版本對全書內容進行了全面修訂。


目錄大綱


第3版前言
第一部分基礎入門
第1章初識Docker與容器3 
1.1什麼是Docker 3 
1.2為什麼要使用Docker 6 
1.3 Docker與虛擬化8 
1.4本章小結9 
第2章核心概念與安裝配置10 
2.1核心概念10 
2.2安裝Docker引擎11 
2.2.1 Ubuntu環境下安裝Docker 12 
2.2.2 CentOS環境下安裝Docker 14 
2.2.3通過腳本安裝15 
2.2.4 macOS環境下安裝Docker 15 
2.2.5 Windows環境下安裝Docker 23 
2.3配置Docker服務26 
2.4推薦實踐環境27 
2.5本章小結27 
第3章使用Docker鏡像28 
3.1獲取鏡像28 
3.2查看鏡像信息30 
3.3搜尋鏡像32
3.4刪除和清理鏡像33 
3.5創建鏡像35 
3.6存出和載入鏡像36 
3.7上傳鏡像37 
3.8本章小結38 
第4章操作Docker容器39 
4.1創建容器39 
4.2停止容器44 
4.3進入容器46 
4.4刪除容器47 
4.5導入和導出容器48 
4.6查看容器49 
4.7其他容器命令50 
4.8本章小結52 
第5章訪問Docker倉庫53 
5.1 Docker Hub公共鏡像市場53 
5.2第三方鏡像市場55 
5.3搭建本地私有倉庫56 
5.4本章小結58 
第6章Docker數據管理59 
6.1數據卷59 
6.2數據卷容器60 
6.3利用數據卷容器來遷移數據62 
6.4本章小結62
第7章端口映射與容器互聯63 
7.1端口映射實現容器訪問63 
7.2互聯機制實現便捷互訪64 
7.3本章小結67 
第8章使用Dockerfile創建鏡像68 
8.1基本結構68 
8.2指令說明70 
8.2.1配置指令71 
8.2.2操作指令74 
8.3創建鏡像75 
8.3.1命令選項76 
8.3.2選擇父鏡像77 
8.3.3使用.dockerignore文件77 
8.3.4多步驟創建78 
8.4最佳實踐79 
8.5本章小結80 
第二部分實戰案例
第9章操作系統83 
9.1 BusyBox 83 
9.2 Alpine 85 
9.3 Debian/Ubuntu 86 
9.4 CentOS/Fedora 88 
9.5本章小結89
第10章為鏡像添加SSH服務90 
10.1基於commit命令創建90 
10.2使用Dockerfile創建93 
10.3本章小結95 
第11章Web服務與應用96 
11.1 Apache 96 
11.2 Nginx 100 
11.3 Tomcat 104 
11.4 Jetty 108 
11.5 LAMP 109 
11.6持續開發與管理111 
11.7本章小結114 
第12章數據庫應用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本章小結129 
第13章分佈式處理與大數據平台130 
13.1 Hadoop 130 
13.2 Spark 133
13.3 Storm 136 
13.4 Elasticsearch 140 
13.5本章小結141 
第14章編程開發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相關資源154 
14.4 JavaScript 154 
14.4.1使用Node.js 154 
14.4.2相關資源158 
14.5 Go 158 
14.6本章小結161 
第15章容器與雲服務162 
15.1公有云容器服務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容器雲服務168 
15.3阿里雲容器服務172 
15.4時速雲介紹174 
15.5本章小結175 
第16章容器實戰思考176 
16.1 Docker為什麼會成功176 
16.2研發人員該如何看待容器177 
16.3容器化開發模式178 
16.4容器與生產環境180 
16.5本章小結182 
第三部分進階技能
第17章核心實現技術185 
17.1基本架構185 
17.2命名空間187 
17.3控制組191 
17.4聯合文件系統193 
17.5 Linux網絡虛擬化195 
17.6本章小結197 
第18章配置私有倉庫199 
18.1安裝Docker Registry 199
18.2配置TLS證書201 
18.3管理訪問權限202 
18.4配置Registry 205 
18.5批量管理鏡像211 
18.6使用通知系統214 
18.7本章小結217 
第19章安全防護與配置218 
19.1命名空間隔離的安全218 
19.2控制組資源控制的安全219 
19.3內核能力機制219 
19.4 Docker服務端的防護221 
19.5更多安全特性的使用221 
19.6使用第三方檢測工具222 
19.6.1 Docker Bench 222 
19.6.2 clair 223 
19.7本章小結224 
第20章高級網絡功能225 
20.1啟動與配置參數225 
20.2配置容器DNS和主機名227 
20.3容器訪問控制228 
20.4映射容器端口到宿主主機的實現229 
20.5配置容器網橋231
20.6自定義網橋232 
20.7使用OpenvSwitch網橋233 
20.8創建一個點到點連接235 
20.9本章小結236 
第21章libnetwork插件化網絡功能237 
21.1容器網絡模型237 
21.2 Docker網絡命令238 
21.3構建跨主機容器網絡241 
21.4本章小結243 
第四部分開源項目
第22章Etcd—高可用的鍵值數據庫247 
22.1 Etcd簡介247 
22.2安裝和使用Etcd 248 
22.3使用客戶端命令253 
22.3.1數據類操作255 
22.3.2非數據類操作258 
22.4 Etcd集群管理260 
22.4.1構建集群260 
22.4.2集群參數配置263 
22.5本章小結264 
第23章Docker三劍客之Machine 265
23.1 Machine簡介265 
23.2安裝Machine 265 
23.3使用Machine 266 
23.4 Machine命令268 
23.5本章小結272 
第24章Docker三劍客之Compose 273 
24.1 Compose簡介273 
24.2安裝與卸載274 
24.3 Compose模板文件277 
24.4 Compose命令說明292 
24.5 Compose環境變量299 
24.6 Compose應用案例一:Web負載均衡300 
24.7 Compose應用案例二:大數據Spark集群304 
24.8本章小結309 
第25章Docker三劍客之Swarm 310 
25.1 Swarm簡介310 
25.2基本概念311 
25.3使用Swarm 313 
25.4使用服務命令316 
25.5本章小結319
第26章Mesos—優秀的集群資源調度平台321 
26.1簡介321 
26.2 Mesos安裝與使用322 
26.3原理與架構330 
26.3.1架構330 
26.3.2基本單元331 
26.3.3調度331 
26.3.4高可用性332 
26.4 Mesos配置解析333 
26.4.1通用項333 
26.4.2 master專屬配置項333 
26.4.3 slave專屬配置項335 
26.5日誌與監控338 
26.6常見應用框架340 
26.7本章小結341 
第27章Kubernetes—生產級容器集群平台343 
27.1簡介343 
27.2核心概念345 
27.3資源抽像對象348 
27.3.1容器組348 
27.3.2服務349 
27.3.3存儲卷350
27.4控制器抽像對象351 
27.5其他抽像對象353 
27.6快速體驗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全局參數367 
27.8.4通用子命令369 
27.9網絡設計372 
27.10本章小結374 
第28章其他相關項目375 
28.1持續集成375 
28.2容器管理377 
28.2.1 Portainer 377
28.2.2 Panamax 378 
28.2.3 Seagull 378 
28.3編程開發380 
28.4網絡支持381 
28.4.1 Pipework 381 
28.4.2 Flannel項目382 
28.4.3 Weave Net項目382 
28.4.4 Calico項目383 
28.5日誌處理383 
28.6服務代理385 
28.7標準與規範389 
28.8其他項目392 
28.9本章小結396 
附錄
附錄A常見問題總結398 
附錄B Docker命令查詢404 
附錄C參考資源鏈接411


作者介紹


楊保華 戴王劍 曹亞崙:楊保華:博士,現為甲骨文架構師。研究方向包括分佈式系統、大數據和算法設計等,是容器、網絡虛擬化、區塊鍊等技術的早期研究者和佈道者。他倡導技術創新與產品、市場相結合,曾負責多個大型平台的架構和設計,以及企業系統的實現和實施。他熱愛開源文化,曾積極貢獻了多個開源項目。




相關書籍

Google Cloud for DevOps Engineers: A practical guide to SRE and achieving Google's Professional Cloud DevOps Engineer certification

作者 Madamanchi Sandeep

2018-10-01

AWS Certified Developer - Associate Guide, Second Edition

作者 Tankariya Vipul Parmar Bhavin

2018-10-01

Hands-On Networking with Azure: Build large-scale, real-world apps using Azure networking solutions

作者 Mohamed Waly

2018-10-01