Docker容器技術 配置、部署與應用(第2版)(微課版)

彭曉東,岳曉瑞,杜毅

  • 出版商: 人民郵電
  • 出版日期: 2025-01-01
  • 售價: $359
  • 語言: 簡體中文
  • 頁數: 262
  • ISBN: 7115660921
  • ISBN-13: 9787115660923
  • 相關分類: Docker
  • 下單後立即進貨 (約4週~6週)

  • Docker容器技術 配置、部署與應用(第2版)(微課版)-preview-1
  • Docker容器技術 配置、部署與應用(第2版)(微課版)-preview-2
Docker容器技術 配置、部署與應用(第2版)(微課版)-preview-1

相關主題

商品描述

本書從Docker運維工程師的視角系統地講解Docker容器的配置、部署與應用,共分為8個項目,包括Docker安裝、Docker快速入門、Docker網絡與存儲配置、Docker容器與守護進程運維、定義和運行多容器應用程序、應用程序容器化、自動化構建與持續集成、Kubernetes部署容器化應用程序。本書重點講解Docker在應用程序開發和部署方面的實施。本書內容豐富,註重實踐性和可操作性,項目中的每個任務都有相應的操作示範,並穿插大量實例,便於讀者快速上手。

本書可作為職業院校電腦相關專業課程的教材,也可作為軟件開發人員、IT實施和運維工程師學習Docker容器技術的參考書,還可作為相關機構的培訓教材。

作者簡介

彭曉東,北京北大方正軟件職業技術學院助理院長、分管人工智能學院,講師(社評),教授(校評),北京市高等教育學會電腦教育研究分會副理事長。 畢業於北京科技大學電腦軟件與理論專業,工學碩士。曾先後在北京新科電子公司、北京摩托羅拉公司、方正數字科技公司等企業從事軟件開發和項目管理工作,項目實戰經驗豐富。 曾負責軟件技術、大數據技術與應用、人工智能技術應用、網絡安全等專業的建設工作。主持完成了北京北大方正軟件職業技術學院信息化項目建設等一系列中高職院校信息化的項目。對數據處理與分析、人工智能技術應用與開發、信息安全和信息化教學等方面有深入研究。

目錄大綱

項目1 Docker安裝 1

任務1.1 瞭解Docker 1

任務說明 1

知識引入 2

1.1.1 什麽是Docker 2

1.1.2 Docker的優勢 2

1.1.3 Docker架構 3

1.1.4 應用程序部署方式的演變 4

任務實現 5

任務1.1.1 瞭解Docker用例 5

任務1.1.2 調查國內的Docker應用現狀 8

任務1.2 安裝Docker 10

任務說明 10

知識引入 10

1.2.1 Docker Engine 10

1.2.2 Docker Desktop 11

任務實現 12

任務1.2.1 安裝Docker Engine 12

任務1.2.2 安裝Docker Engine之後的配置 16

任務1.3 Docker命令行的使用 17

任務說明 17

知識引入 17

1.3.1 Docker的命令行接口 17

1.3.2 docker命令列表 17

任務實現 19

任務1.3.1 熟悉docker命令的基本語法 19

任務1.3.2 運行一個容器 21

項目實訓 22

項目實訓1 安裝Docker Engine 22

項目實訓2 使用docker命令 22

項目總結 22

項目2 Docker快速入門 23

任務2.1 Docker鏡像的使用 24

任務說明 24

知識引入 24

2.1.1 什麽是鏡像 24

2.1.2 鏡像的基本信息 24

2.1.3 鏡像描述文件Dockerfile 25

2.1.4 鏡像操作命令 27

任務實現 27

任務2.1.1 掌握鏡像的基本操作 27

任務2.1.2 驗證鏡像的分層結構 30

任務2.2 Docker容器的使用 31

任務說明 31

知識引入 31

2.2.1 什麽是容器 31

2.2.2 容器的基本信息 32

2.2.3 容器的可寫層 32

2.2.4 容器操作命令 33

2.2.5 容器的生命周期 34

任務實現 35

任務2.2.1 創建並同時啟動容器 35

任務2.2.2 掌握容器的其他常用操作 37

任務2.3 Docker註冊中心的使用 40

任務說明 40

知識引入 41

2.3.1 註冊中心 41

2.3.2 倉庫 41

任務實現 42

任務2.3.1 配置鏡像加速器 42

任務2.3.2 使用阿裡雲容器鏡像服務ACR 43

任務2.3.3 自建註冊中心 47

任務2.4 構建鏡像 49

任務說明 49

知識引入 50

2.4.1 基於容器生成鏡像 50

2.4.2 Dockerfile格式 50

2.4.3 Dockerfile常用指令 51

2.4.4 區分RUN、CMD和ENTRYPOINT指令 56

2.4.5 鏡像構建工具 58

任務實現 59

任務2.4.1 基於Dockerfile構建鏡像 59

任務2.4.2 測試構建緩存 61

項目實訓 62

項目實訓1 Ubuntu鏡像操作 62

項目實訓2 Apache Web容器操作 62

項目實訓3 使用自建註冊中心 63

項目實訓4 構建在Ubuntu系統上運行的nginx鏡像 63

項目總結 63

項目3 Docker網絡與存儲配置 65

任務3.1 Docker網絡配置與管理 65

任務說明 65

知識引入 66

3.1.1 Docker網絡概述 66

3.1.2 容器的網絡模式 67

3.1.3 容器之間的通信 70

3.1.4 容器與外部網絡之間的通信 70

3.1.5 容器的網絡配置語法 71

3.1.6 Docker網絡管理語法 73

任務實現 73

任務3.1.1 將容器連接到默認橋接網絡 73

任務3.1.2 創建用戶自定義橋接網絡並連接容器 76

任務3.1.3 設置埠映射以允許外部網絡訪問容器 81

任務3.2 Docker存儲配置與管理 82

任務說明 82

知識引入 82

3.2.1 容器本地存儲與Docker存儲驅動 82

3.2.2 容器與數據存儲持久化 83

3.2.3 掛載類型及其選擇 84

3.2.4 Docker的捲管理命令 86

3.2.5 容器的文件系統掛載語法 86

任務實現 87

任務3.2.1 容器使用捲 87

任務3.2.2 容器使用綁定掛載 92

項目實訓 95

項目實訓1 創建和使用用戶自定義橋接網絡 95

項目實訓2 使用捲 96

項目實訓3 使用綁定掛載 96

項目實訓4 測試容器填充捲 96

項目總結 96

項目4 Docker容器與守護進程運維 97

任務4.1 Docker容器配置進階 97

任務說明 97

知識引入 98

4.1.1 容器的資源限制 98

4.1.2 容器的自動重啟 101

4.1.3 在容器中運行多個服務 102

4.1.4 容器健康檢查機制 102

4.1.5 運行時選項覆蓋Dockerfile指令 103

任務實現 105

任務4.1.1 配置容器的自動重啟策略 105

任務4.1.2 在容器中使用supervisord管理PHP和Nginx服務 107

任務4.1.3 測試容器健康檢查功能 108

任務4.2 容器監控與日誌管理 109

任務說明 109

知識引入 109

4.2.1 容器監控工具 109

4.2.2 容器日誌工具 110

4.2.3 日誌驅動 111

任務實現 112

任務4.2.1 熟悉Docker監控命令的使用 112

任務4.2.2 使用cAdvisor監控容器 113

任務4.2.3 將容器的日誌記錄到Linux日誌系統 116

任務4.2.4 使用Logspout收集所有容器的日誌 117

任務4.3 配置和管理Docker守護進程 119

任務說明 119

知識引入 119

4.3.1 Docker守護進程的啟動 119

4.3.2 Docker守護進程的配置 120

4.3.3 Docker的實時恢復功能 122

任務實現 123

任務4.3.1 從Docker守護進程獲取實時事件 123

任務4.3.2 查看Docker守護進程日誌 123

任務4.3.3 測試Docker的實時恢復功能 124

任務4.3.4 開啟Docker守護進程的遠程訪問 125

任務4.4 管理Docker對象 126

任務說明 126

知識引入 126

任務實現 126

任務4.4.1 使用Docker對象的標記 126

任務4.4.2 刪除未使用的Docker對象 127

項目實訓 127

項目實訓1 容器的高級配置 127

項目實訓2 實施容器監控 128

項目實訓3 管理容器日誌 128

項目實訓4 配置和管理Docker守護進程 128

項目總結 128

項目5 定義和運行多容器應用程序 129

任務5.1 Compose入門 129

任務說明 129

知識引入 130

5.1.1 為什麽要使用Compose 130

5.1.2 Compose的工作機制 130

5.1.3 Compose的特點 132

5.1.4 Compose的應用場景 133

5.1.5 Compose的版本演變 133

5.1.6 使用Compose的基本步驟 134

任務實現 134

使用Compose部署WordPress 134

任務5.2 編寫Compose文件 138

任務說明 138

知識引入 138

5.2.1 Compose文件結構 138

5.2.2 服務定義 139

5.2.3 網絡定義 144

5.2.4 捲定義 145

任務實現 146

任務5.2.1 編寫定義單個服務的Compose文件 146

任務5.2.2 編寫定義多個服務的Compose文件 147

任務5.3 使用Compose部署和管理應用程序 151

任務說明 151

知識引入 151

5.3.1 Compose命令行語法格式 151

5.3.2 Compose的常用命令 152

5.3.3 Compose的環境變量 154

5.3.4 組合使用多個Compose文件 155

任務實現 157

任務5.3.1 從源代碼開始構建、部署和管理應用程序 157

任務5.3.2 更改Compose應用程序以適應不同環境 161

項目實訓 163

項目實訓1 使用Compose部署Web負載均衡應用程序 163

項目實訓2 從源代碼開始構建、部署和管理應用程序 164

項目總結 164

項目6 應用程序容器化 165

任務6.1 構建應用程序鏡像 165

任務說明 165

知識引入 166

6.1.1 編寫Dockerfile應遵循的準則和建議 166

6.1.2 創建自己的基礎鏡像 168

6.1.3 確定應用程序鏡像包含的內容 168

6.1.4 應用程序鏡像的構建和管理 169

任務實現 169

任務6.1.1 基於scratch構建簡單的鏡像 169

任務6.1.2 製作基於VNC的Firefox鏡像 171

任務6.1.3 多階段構建鏡像 172

任務6.2 對應用程序進行容器化 173

任務說明 173

知識引入 174

6.2.1 應用程序容器化的基本步驟 174

6.2.2 部署容器化應用程序的方式 174

6.2.3 容器化過程中的應用程序代碼處理 174

6.2.4 容器化應用程序的鏡像大小優化 175

6.2.5 容器化應用程序的數據持久化 175

任務實現 176

容器化Node.js應用程序 176

任務6.3 Java應用程序容器化 179

任務說明 179

知識引入 179

6.3.1 Java的特點 179

6.3.2 Java的Web應用程序開發技術 180

6.3.3 Java應用程序服務器 180

6.3.4 Maven工具與Docker Maven插件 181

6.3.5 Spring Boot應用程序 181

任務實現 182

任務6.3.1 容器化簡單的Java應用程序 182

任務6.3.2 容器化Tomcat應用程序 184

任務6.3.3 容器化Spring Boot應用程序 186

任務6.4 Python應用程序容器化 190

任務說明 190

知識引入 190

6.4.1 Python應用程序 190

6.4.2 Python Web框架及其部署技術 191

6.4.3 Python官方鏡像的基本使用 192

任務實現 193

任務6.4.1 容器化Flask應用程序 193

任務6.4.2 容器化Django應用程序 197

項目實訓 202

項目實訓1 容器化Spring Boot應用程序 202

項目實訓2 使用Compose部署LAMP平臺 202

項目實訓3 使用Compose部署Django應用程序 203

項目總結 203

項目7 自動化構建與持續集成 204

任務7.1 實現Docker鏡像的自動化構建 204

任務說明 204

知識引入 205

7.1.1 代碼管理與代碼分支 205

7.1.2 CI/CD的概念 205

7.1.3 鏡像的自動化構建 206

7.1.4 GitLab與GitLab Runner 207

任務實現 209

任務7.1.1 部署GitLab服務器 209

任務7.1.2 基於GitLab實現鏡像的自動化構建 213

任務7.2 基於Docker實現CI/CD 219

任務說明 219

知識引入 219

7.2.1 Docker與CI/CD的結合 219

7.2.2 CI/CD實施工具 220

7.2.3 CI/CD平臺的組建方案 221

7.2.4 Jenkins的項目類型 222

7.2.5 Jenkins的流水線代碼語法 222

任務實現 223

任務7.2.1 部署Jenkins服務器 223

任務7.2.2 使用Jenkins的流水線項目實施CI/CD 227

任務7.2.3 通過配置GitLab自動觸發項目自動化構建和部署 233

項目實訓 236

項目實訓1 搭建GitLab平臺實現鏡像自動化構建 236

項目實訓2 結合Docker和Jenkins實現CI/CD 237

項目總結 237

項目8 Kubernetes部署容器化應用程序 238

任務8.1 部署Kubernetes集群 238

任務說明 238

知識引入 239

8.1.1 容器編排解決方案 239

8.1.2 Kubernetes集群的組成 240

8.1.3 Kubernetes集群的部署工具 241

8.1.4 Kubernetes的對象和資源 242

8.1.5 使用YAML文件描述應用程序 243

8.1.6 Kubernetes對象管理方法 244

任務實現 244

任務8.1.1 基於kind部署Kubernetes集群 244

任務8.1.2 在Kubernetes集群中運行並發布應用程序 248

任務8.2 在Kubernetes集群中部署開發的應用程序 250

任務說明 250

知識引入 251

8.2.1 將開發的應用程序部署到Kubernetes集群的基本流程 251

8.2.2 Jenkins的Maven項目CI/CD流程 251

任務實現 252

任務8.2.1 在Kubernetes集群中手動部署開發的應用程序 252

任務8.2.2 基於CI/CD平臺將應用程序自動部署到Kubernetes集群 256

項目實訓 261

項目實訓1 手動將Python應用程序部署到Kubernetes 261

項目實訓2 自動觸發Maven項目構建並部署到Kubernetes 261

項目總結 262