沒什麼難的Docker入門與開發實戰

《沒什麼難的Docker入門與開發實戰》是2017年電子工業出版社出版的圖書,作者是熊昌隆。

內容簡介

作為引領近幾年容器虛擬化領域的技術,Docker的發展方興未艾。但由於其出現不過數年,關於它的資料,特別是中文資料仍然相對匱乏,導致國內許多開發者對其感到陌生。本書正是以布道Docker為理念,由淺入深地從闡述Docker的基本概念、講解常規使用方法、進行操作實踐的演示、展示提高和進階用法、剖析內部原理和底層架構等多個方面,全方面的展現Docker所具有的魅力。本書由概念及至實踐,從不同方面向讀者展現了Docker,實用性非常強,既可以作為一本學習Docker的入門教材,也能作為進行Docker操作實踐的說明書,甚至可以作為提高和進階的知識寶庫。不沒什麼論是對Docker認知程度不同,有著不同知識儲備的人,還是處於程式軟體研發部署流程中的開發人員、測試人員或運維人員,本書都有著很強的可閱讀性。

目錄信息

第一部分 基礎篇

第1章 初識Docker 1

1.1 虛擬化 2

1.1.1 虛擬化技術 2

1.1.2 虛擬化的分類 4

1.2 容器技術與Docker 6

1.2.1 容器技術 6

1.2.2 Docker簡介 8

1.2.3 改變世界的發明 10

1.3 Docker的安裝 10

1.3.1 在Ubuntu中安裝Docker 11

1.3.2 在CentOS中安裝Docker 12

1.3.3 在Windows中安裝Docker 13

1.3.4 在Mac OS中安裝Docker 15

1.3.5 在其他系統中安裝Docker 16

1.4 Docker的優勢 17

1.4.1 革命性的虛擬化方案 17

1.4.2 高效的容器技術 18

1.4.3 社區的力量 19

1.5 Docker的套用場景 20

1.5.1 超短時間部署運行 20

1.5.2 節約遷移時間 21

1.6 本章小結 21

第2章 鏡像與倉庫 22

2.1 鏡像的概念 22

2.1.1 聯合檔案系統 22

2.1.2 Docker中的鏡像 23

2.1.3 鏡像的分層結構 24

2.1.4 鏡像的寫時複製 25

2.2 使用和管理鏡像 26

2.2.1 獲取鏡像 26

2.2.2 列出鏡像 28

2.2.3 獲得鏡像的詳細信息 28

2.2.4 刪除鏡像 31

2.2.5 鏡像的遷移 32

2.3 Docker Hub 33

2.3.1 鏡像倉庫 33

2.3.2 Docker Hub 34

2.3.3 註冊Docker Hub賬號 35

2.3.4 搜尋鏡像 36

2.3.5 共享自動構建鏡像 38

2.4 搭建私有倉庫 40

2.4.1 鏡像分發服務 40

2.4.2 Docker Registry HTTP API 41

2.4.3 部署私有倉庫 42

2.5 本章小結 44

第3章 管理和使用容器 45

3.1 管理容器 45

3.1.1 創建容器 45

3.1.2 容器的啟動過程 48

3.1.3 列出容器 49

3.1.4 容器的命名 51

3.1.5 啟動和停止 52

3.1.6 暫停和恢復 53

3.1.7 重啟容器 54

3.1.8 刪除容器 55

3.2 連線到容器 55

3.2.1 查看進程信息 56

3.2.2 查看容器信息 56

3.2.3 容器日誌 62

3.2.4 銜接到容器 63

3.2.5 在容器中執行命令 64

3.3 容器的保存與遷移 65

3.3.1 提交容器更改 65

3.3.2 容器的導入/導出 68

3.4 本章小結 70

第4章 數據卷與網路 71

4.1 數據卷 71

4.1.1 關於數據卷 71

4.1.2 數據卷的特點 72

4.1.3 創建數據卷 73

4.1.4 掛載數據卷 74

4.1.5 刪除數據卷 76

4.2 數據卷容器 77

4.2.1 關於數據卷容器 77

4.2.2 創建數據卷容器 78

4.2.3 連線數據卷容器 79

4.2.4 數據卷的遷移 80

4.3 網路基礎 82

4.3.1 網路簡介 82

4.3.2 查看網路配置 83

4.4 網路訪問 85

4.4.1 宿主機連線埠映射 85

4.4.2 容器連線 87

4.5 本章小結 90

第5章 製作鏡像 91

5.1 了解Dockerfile 91

5.1.1 Dockerfile簡介 92

5.1.2 使用Dockerfile創建鏡像 94

5.2 基礎指令 96

5.2.1 FROM 97

5.2.2 MAINTAINER 97

5.3 控制指令 97

5.3.1 RUN 97

5.3.2 WORKDIR 99

5.3.3 ONBUILD 99

5.4 引入指令 100

5.4.1 ADD 100

5.4.2 COPY 102

5.5 執行指令 102

5.5.1 CMD 102

5.5.2 ENTRYPOINT 104

5.6 配置指令 107

5.6.1 EXPOSE 108

5.6.2 ENV 108

5.6.3 LABEL 109

5.6.4 USER 110

5.6.5 ARG 111

5.6.6 STOPSIGNAL 112

5.6.7 SHELL 113

5.7 特殊用法 113

5.7.1 環境變數 113

5.7.2 指令解析 114

5.7.3 忽略檔案 116

5.8 本章小結 117

第二部分 實踐篇

第6章 SSH服務 118

6.1 在Docker中使用SSH 118

6.1.1 SSH簡介 119

6.1.2 SSH使用方法簡介 119

6.1.3 數據卷管理容器 121

6.1.4 使用SSH服務容器 122

6.2 構建SSH服務鏡像 124

6.2.1 構建方式比較 124

6.2.2 通過提交構建 125

6.2.3 使用Dockerfile構建 127

6.3 本章小結 131

第7章 Web伺服器 132

7.1 Web服務簡介 132

7.1.1 全球資訊網與網站 132

7.1.2 Web服務 133

7.1.3 Web服務程式 135

7.2 Apache 135

7.2.1 Apache簡介 135

7.2.2 安裝Apache 136

7.2.3 構建Apache鏡像 139

7.2.4 測試Apache容器 142

7.3 Nginx 143

7.3.1 關於Nginx 143

7.3.2 安裝Nginx 144

7.3.3 構建Nginx鏡像 146

7.3.4 測試Nginx鏡像 148

7.4 Tomcat 148

7.4.1 Tomcat簡介 149

7.4.2 安裝Tomcat 149

7.4.3 構建Tomcat鏡像 152

7.5 本章小結 153

第8章 資料庫程式 155

8.1 MySQL 155

8.1.1 MySQL簡介 156

8.1.2 安裝MySQL 156

8.1.3 構建MySQL鏡像 162

8.1.4 測試MySQL容器 164

8.2 MongoDB 166

8.2.1 MongoDB簡介 166

8.2.2 安裝MongoDB 167

8.2.3 構建MongoDB鏡像 171

8.2.4 測試MongoDB容器 173

8.3 本章小結 176

第9章 快取工具 177

9.1 Memcached 178

9.1.1 Memcached簡介 178

9.1.2 安裝Memcached 179

9.1.3 構建Memcached鏡像 184

9.1.4 測試Memcached容器 186

9.2 Redis 188

9.2.1 Redis簡介 188

9.2.2 安裝Redis 188

9.2.3 構建Redis鏡像 193

9.2.4 測試Redis容器 195

9.3 本章小結 196

第10章 動態處理程式 197

10.1 Java 197

10.1.1 Java簡介 198

10.1.2 安裝Java 198

10.1.3 構建Java鏡像 204

10.1.4 測試Java容器 206

10.2 PHP 207

10.2.1 PHP簡介 207

10.2.2 安裝PHP 208

10.2.3 構建PHP鏡像 214

10.2.4 測試PHP容器 216

10.3 Python 217

10.3.1 Python簡介 217

10.3.2 安裝Python 218

10.3.3 構建Python鏡像 223

10.3.4 測試Python容器 224

10.4 Node.js 225

10.4.1 Node.js簡介 225

10.4.2 安裝Node.js 226

10.4.3 構建Node.js鏡像 228

10.4.4 測試Node.js容器 230

10.5 本章小結 231

第11章 綜合演練 232

11.1 演練目標 232

11.1.1 目標概述 232

11.1.2 代碼編寫 233

11.2 環境搭建 237

11.2.1 準備鏡像 237

11.2.2 程式配置 239

11.3 項目運行 248

11.3.1 啟動容器 248

11.3.2 測試項目 249

11.4 本章小結 253

第三部分 提高篇

第12章 網路進階 254

12.1 網路實現 254

12.1.1 容器網路基礎 255

12.1.2 網路模型 257

12.2 Docker中的網路 258

12.2.1 默認網路 258

12.2.2 自定義網路 261

12.2.3 容器與外部通信 262

12.2.4 容器間通信 264

12.3 網路實踐 265

12.3.1 管理容器網路 265

12.3.2 容器連線網路 267

12.3.3 配置docker0網橋 269

12.3.4 自定義網橋 271

12.3.5 配置DNS 271

12.3.6 使用IPv6 273

12.4 本章小結 274

第13章 安全加固 275

13.1 深入理解Docker安全 275

13.1.1 命名空間隔離 276

13.1.2 資源控制組 277

13.1.3 核心能力機制 277

13.2 資源使用限制 278

13.2.1 通過控制組限制 278

13.2.2 通過ulimit限制 280

13.2.3 網路訪問限制 280

13.3 校驗與監控 281

13.3.1 鏡像簽名 281

13.3.2 運行狀態監控 283

13.4 聯級防護 284

13.4.1 組合虛擬化 284

13.4.2 檔案系統安全 284

13.5 核心安全技術 285

13.5.1 Capability 286

13.5.2 SELinux 287

13.5.3 AppArmor 288

13.6 本章小結 289

第14章 Docker API 290

14.1 關於Docker API 290

14.1.1 通用操作接口 290

14.1.2 關於RESTful 291

14.1.3 Docker API的優勢 292

14.1.4 Docker API的分類 293

14.2 使用Docker Remote API 293

14.2.1 關於Docker Remote API 294

14.2.2 Docker Remote API的版本 299

14.2.3 通過Remote API列出容器 300

14.2.4 通過Remote API列出鏡像 302

14.3 使用Docker Registry API 303

14.3.1 關於Docker Registry API 304

14.3.2 Docker Registry API的主要功能 304

14.3.3 Docker Registry API的版本 305

14.3.4 通過Registry API拉取鏡像 306

14.3.5 通過Registry API推送鏡像 307

14.4 本章小結 309

第15章 管理工具 310

15.1 Docker Compose 310

15.1.1 Docker Compose簡介 311

15.1.2 安裝Docker Compose 313

15.1.3 Docker Compose配置檔案 314

15.1.4 常用的Docker Compose命令 315

15.2 Docker Machine 318

15.2.1 Docker Machine簡介 318

15.2.2 安裝Docker Machine 320

15.2.3 Docker Machine常見命令 321

15.3 Docker Swarm 322

15.3.1 Docker Swarm簡介 322

15.3.2 Docker Swarm結構 323

15.3.3 使用Docker Swarm 323

15.3.4 Docker Swarm常見命令 325

15.4 本章小結 327

第16章 Docker的技術架構 328

16.1 命名空間 328

16.1.1 關於Linux命名空間 328

16.1.2 命名空間的系統調用 329

16.1.3 命名空間的分類 330

16.2 控制組 332

16.2.1 關於Linux控制組 332

16.2.2 Cgroups的組成 333

16.2.3 容器與控制組 334

16.3 聯合檔案系統 336

16.3.1 關於UFS 336

16.3.2 Docker中的UFS 337

16.4 Docker Engine架構 338

16.4.1 Docker Engine的組成結構 338

16.4.2 Docker Daemon 339

16.4.3 Docker CLI 342

16.5 本章小結 344

相關詞條

熱門詞條

聯絡我們