Docker技術入門與實戰 第4版

楊保華 戴王劍 曹亞侖

  • 出版商: 機械工業
  • 出版日期: 2025-11-01
  • 售價: $774
  • 語言: 簡體中文
  • 頁數: 486
  • ISBN: 7111788761
  • ISBN-13: 9787111788768
  • 相關分類: Docker
  • 下單後立即進貨 (約4週~6週)

相關主題

商品描述

Docker和容器化計算技術一直在不斷創新和發展。十多年前,本書首版面市,見證了 Docker技術的發展,為了讓讀者 深入地理解和掌握新的容器技術,第4版中補充了一些新特性(如 構建功能),同時也摒棄了一些過時的工具和項目(如Docker Machine項目)。 全書分為四部分: 部分簡要介紹 Docker 的基礎知識和常用命令;第二部分詳述在各種典型場景中如何運用容器技術,包括操作系統、Web服務、數據庫、分布式處理和大數據、編程開發以及容器雲等;第三部分深入講解 容器技巧,包括實現原理、私有倉庫、安全防護、 網絡功能和網絡插件;第四部分展示與容器相關的開源項目,包括Etcd、Compose、Swarm、Kubernetes等。這些項目讓使用容器技術變得 加有效率,使容器平臺 加穩定和智能,共同構建了一個繁榮的容器化計算生態。

作者簡介

楊保華 博士,信息科技行業 專家。興趣方向包括分布式系統、人工智能和軟件架構等,是容器、網絡虛擬化、區塊鏈等技術的早期研究和推動者。他倡導技術創新與產品、市場相結合,曾負責多個大型計算平臺產品的架構和設計,以及企業系統的實現和實施。他熱愛開源文化,曾積極貢獻多個開源項目。

戴王劍 計算機專家。十多年來一直從事系統平臺、計算機網絡、服務器架構設計,負責過多個省級項目的架構設計。

曹亞侖 雲原生SRE,十年來一直從事雲平臺運維穩定性工作,負責過多個重大項目的運維體系建設。現為某雲廠商專有雲運維專家組成員,歷任存儲產品線DevOps工程師、雲技術經理(TAM)、故障應急值班長。2014年開始從事Docker相關技術研究,並在管控容器化及混合雲DevOps項目中進行大量實踐。此外,在企業級雲原生運維、混合雲運維穩定性體系建設及故障應急處置方面有豐富的經驗

目錄大綱

前言

第一部分 基礎入門

第1章 初識Docker與容器 3

1.1 什麼是Docker 3

1.2 為什麼使用Docker 5

1.3 Docker與虛擬化 7

1.4 本章小結 8

第2章 核心概念與安裝配置 9

2.1 核心概念 9

2.2 安裝Docker引擎 11

2.2.1 Docker引擎版本 11

2.2.2 在Linux環境下安裝Docker

引擎 12

2.3 安裝Docker桌面版 13

2.3.1 在macOS環境下安裝Docker

桌面版 14

2.3.2 在Windows環境下安裝

Docker桌面版 16

2.4 配置Docker服務 17

2.5 推薦實踐環境 18

2.6 本章小結 18

第3章 使用Docker鏡像 19

3.1 獲取鏡像 19

3.2 查看鏡像信息 21

3.3 搜尋鏡像 24

3.4 刪除和清理鏡像 24

3.5 創建鏡像 26

3.6 導出和載入鏡像 28

3.7 上傳鏡像 29

3.8 本章小結 29

第4章 操作Docker容器 30

4.1 創建容器 30

4.1.1 新建容器 30

4.1.2 啟動容器 34

4.1.3 新建並啟動容器 34

4.1.4 守護態運行 35

4.1.5 查看容器輸出 36

4.2 停止容器 36

4.3 進入容器 37

4.4 刪除容器 39

4.5 導入和導出容器 39

4.6 查看容器 41

4.7 其他容器命令 42

4.8 本章小結 43

第5章 訪問Docker倉庫 45

5.1 Docker Hub公共鏡像市場 45

5.2 搭建本地私有倉庫 49

5.3 本章小結 51

第6章 Docker數據管理 52

6.1 數據卷 52

6.2 數據卷容器 54

6.3 利用數據卷容器遷移數據 55

6.4 本章小結 56

第7章 端口映射與容器互聯 57

7.1 通過端口映射實現容器訪問 57

7.2 通過互聯機制實現便捷互訪 58

7.3 本章小結 61

第8章 使用Dockerfile創建鏡像 62

8.1 基本結構 62

8.2 指令說明 65

8.2.1 基本格式 65

8.2.2 解析器指令 66

8.2.3 環境變量替換 68

8.2.4 .dockerignore文件 69

8.2.5 FROM 70

8.2.6 RUN 71

8.2.7 RUN --mount 71

8.2.8 RUN --network 74

8.2.9 CMD 75

8.2.10 LABEL 76

8.2.11 EXPOSE 76

8.2.12 ENV  77

8.2.13 ADD 78

8.2.14 COPY 81

8.2.15 COPY/ADD --link 82

8.2.16 ENTRYPOINT 83

8.2.17 VOLUME 87

8.2.18 關於指定卷的註意事項 88

8.2.19 USER 88

8.2.20 WORKDIR 89

8.2.21 ARG 89

8.2.22 ONBUILD 93

8.2.23 STOPSIGNAL停止

信號 94

8.2.24 HEALTHCHECK 94

8.2.25 SHELL 95

8.3 創建鏡像 97

8.3.1 命令選項 97

8.3.2 選擇父鏡像 98

8.3.3 使用.dockerignore文件 99

8.3.4 多步驟創建 99

8.4 最佳實踐 100

8.5 本章小結 101

第9章 高級鏡像構建 102

9.1 使用構建器 102

9.1.1 創建構建器 103

9.1.2 列出構建器 103

9.1.3 使用Remote遠程構建套件

驅動 104

9.1.4 構建器磁盤清理 106

9.2 多步驟構建 107

9.2.1 單步驟構建的問題 107

9.2.2 使用多步驟構建 107

9.3 多平臺鏡像 109

9.4 使用GitHub Action 111

9.5 本章小結 116

第二部分 實戰案例

第10章 操作系統 119

10.1 BusyBox 119

10.2 Alpine 120

10.3 Ubuntu 121

10.4 本章小結 123

第11章 Web服務與應用 124

11.1 Apache 124

11.2 Nginx 129

11.3 Tomcat 134

11.4 Jetty 135

11.5 LAMP 136

11.6 CMS 139

11.6.1 WordPress 139

11.6.2 Ghost 140

11.7 本章小結 141

第12章 數據庫應用 142

12.1 MySQL 142

12.2 MongoDB 145

12.3 Redis 152

12.4 Memcached 154

12.5 本章小結 157

第13章 分布式處理與大數據

平臺 158

13.1 RabbitMQ 158

13.2 Hadoop 161

13.3 Spark 164

13.4 Storm 166

13.5 Elasticsearch 169

13.6 本章小結 172

第14章 編程開發 173

14.1 C/C++ 173

14.1.1 GCC 173

14.1.2 LLVM 176

14.1.3 Clang 176

14.2 Java 178

14.2.1 Spring Boot 179

14.2.2 相關資源 182

14.3 Python 182

14.3.1 使用PyPy 184

14.3.2 使用Django 184

14.3.3 使用Flask 192

14.3.4 使用Sentry 195

14.3.5 相關資源 197

14.4 JavaScript 197

14.4.1 使用Node.js 197

14.4.2 相關資源 201

14.5 Go 201

14.5.1 Beego 204

14.5.2 Gogs:基於Go的Git

服務 208

14.5.3 相關資源 209

14.6 PHP 209

14.6.1 PHP常用框架 214

14.6.2 相關資源 216

14.7 Rust 216

14.8 本章小結 219

第15章 容器與雲服務 220

15.1 雲服務簡介 220

15.2 AWS 221

15.3 谷歌雲服務 223

15.4 Azure 雲服務 226

15.5 阿裏雲容器服務 228

15.5.1 產品架構 231

15.5.2 應用場景 231

15.6 騰訊雲容器服務 235

15.6.1 產品架構 237

15.6.2 應用場景 237

15.7 本章小結 240

第16章 容器實戰思考 241

16.1 Docker為什麼會成功 241

16.2 研發人員該如何看待容器 242

16.3 容器化開發模式 243

16.4 本章小結 247

第三部分 進階技能

第17章 核心實現技術 251

17.1 基本架構 251

17.2 命名空間 253

17.3 控制組 257

17.4 聯合文件系統 260

17.5 Linux網絡虛擬化 262

17.6 本章小結 264

第18章 配置私有倉庫 265

18.1 安裝Docker Registry 265

18.2 配置TLS證書 267

18.3 管理訪問權限 268

18.4 配置Registry 272

18.5 批量管理鏡像 278

18.6 使用通知系統 280

18.7 使用Harbor搭建私有鏡像倉庫 283

18.8 本章小結 287

第19章 安全防護與配置 289

19.1 命名空間隔離的安全 290

19.2 控制組資源控制的安全 291

19.3 內核能力機制 291

19.4 Docker服務端的防護 292

19.5 更多安全特性的使用 293

19.6 使用第三方檢測工具 294

19.7 本章小結 296

第20章 高級網絡功能 297

20.1 啟動與配置參數 297

20.2 配置容器DNS和主機名 299

20.3 容器訪問控制 301

20.4 映射容器端口到宿主機的

實現 304

20.5 配置容器網橋 305

20.6 自定義網橋 306

20.7 使用OpenvSwitch網橋 307

20.8 創建一個點到點連接 309

20.9 本章小結 310

第21章 libnetwork插件化網絡

功能 311

21.1 容器網絡模型 311

21.2 Docker網絡命令 312

21.3 構建跨主機容器網絡 315

21.4 本章小結 318

第四部分 開源項目

第22章 Etcd——高可用的鍵值

數據庫 321

22.1 安裝和使用Etcd 322

22.1.1 二進制文件方式 322

22.1.2 Docker鏡像方式下載 324

22.1.3 數據目錄 324

22.1.4 服務啟動參數 325

22.2 使用客戶端命令 327

22.2.1 數據類操作 329

22.2.2 非數據類操作 330

22.3 Etcd集群管理 333

22.3.1 構建集群 333

22.3.2 集群配置優化 336

22.4 本章小結 338

第23章 Docker Compose——多容器

應用管理 339

23.1 安裝與卸載 340

23.2 Compose模板文件 342

23.3 Compose命令說明 356

23.3.1 命令對象與格式 356

23.3.2 命令選項 356

23.3.3 命令使用說明 357

23.4 Compose環境變量 363

23.4.1 Compose中定義的環境

變量 363

23.4.2 在Compose文件中使用

環境變量 363

23.4.3 Compose應用案例一:

Web負載均衡 364

23.4.4 Compose應用案例二:

大數據Spark集群 369

23.5 本章小結 373

第24章 Docker Swarm模式——跨主

機容器集群管理 374

24.1 Swarm模式簡介 374

24.2 基本概念 375

24.3 使用服務命令 381

24.4 本章小結 384

第25章 Kubernetes——生產級容器

集群平臺 385

25.1 主要版本歷史 386

25.2 核心概念 388

25.2.1 操作資源 388

25.2.2 控制器 389

25.2.3 輔助概念 390

25.3 資源抽象對象 390

25.3.1 容器組 391

25.3.2 服務 392

25.3.3 存儲卷 393

25.3.4 控制器 394

25.3.5 其他抽象對象 396

25.4 快速體驗 398

25.4.1 下載minikube和

kubectl 398

25.4.2 啟動集群 398

25.4.3 查看Kubernetes服務 399

25.4.4 使用部署控制器管理

服務 399

25.5 重要組件 401

25.6 使用kubectl 406

25.6.1 獲取kubectl 406

25.6.2 命令格式 407

25.6.3 全局參數 408

25.6.4 通用子命令 409

25.6.5 部署命令 414

25.6.6 集群管理命令 415

25.6.7 診斷命令 417

25.6.8 高級命令 420

25.6.9 配置命令 421

25.6.10 其他命令 422

25.7 網絡設計 423

25.7.1 場景分析 423

25.7.2 直接路由 424

25.7.3 Overlay網絡 424

25.8 本章小結 425

第26章 其他相關項目 426

26.1 持續集成 426

26.2 容器管理 432

26.3 編程開發 435

26.3.1 安裝docker-py 435

26.3.2 使用示例 435

26.4 網絡支持 436

26.4.1 pipework 436

26.4.2 Flannel項目 436

26.4.3 Weave Net項目 437

26.4.4 Calico 項目 438

26.5 日誌處理 439

26.5.1 Fluentd 439

26.5.2 logspout 439

26.6 服務代理 440

26.6.1 Traefik 440

26.6.2 nginx-proxy 442

26.7 標準與規範 443

26.7.1 runC標準 443

26.7.2 開放容器規範 443

26.7.3 雲應用十二要素 444

26.8 其他項目 445

26.8.1 OpenStack支持 445

26.8.2 dockerize 446

26.8.3 Unikernel 448

26.9 本章小結 448

附錄

附錄A 常見問題總結 450

A.1 鏡像相關 450

A.2 容器相關 452

A.3 倉庫相關 453

A.4 配置相關 453

A.5 Docker與虛擬化 455

A.6 其他 455

附錄B 熱門鏡像介紹 457

B.1 MongoDB 457

B.2 MySQL 460

B.3 Nginx 463

B.4 Node.js 466

B.5 Redis 468

B.6 Ubuntu 471

B.7 WordPress 472

附錄C Docker命令查詢 476

C.1 基本語法 476

C.2 客戶端命令 476

C.3 服務端命令選項 479

C.4 一張圖總結Docker命令 482

附錄D 資源鏈接 483