Part 1 基礎篇
Chapter 01 初識 Docker
1.1 虛擬化
1.1.1 虛擬化技術
1.1.2 虛擬化的分類
1.2 容器技術與 Docker
1.2.1 容器技術
1.2.2 Docker 簡介
1.2.3 改變世界的發明
1.3 Docker 的安裝
1.3.1 在 Ubuntu 中安裝 Docker
1.3.2 在 CentOS 中安裝 Docker
1.3.3 在 Windows 中安裝 Docker
1.3.4 在 Mac OS 中安裝 Docker
1.3.5 在其他系統中安裝 Docker
1.4 Docker 的優勢
1.4.1 革命性的虛擬化方案
1.4.2 高效率的容器技術
1.4.3 社群的力量
1.5 Docker 的應用場景
1.5.1 超短時間部署執行
1.5.2 節省移植時間
1.6 本章小結
Chapter 02 映像與倉庫
2.1 映像的概念
2.1.1 聯合檔案系統
2.1.2 Docker 中的映像
2.1.3 映像的分層結構
2.1.4 映像的寫入時複製
2.2 使用和管理映像
2.2.1 取得映像
2.2.2 列出映像
2.2.3 取得映像的詳細資訊
2.2.4 刪除映像
2.2.5 映像的移植
2.3 Docker Hub 簡介
2.3.1 映像倉庫
2.3.2 Docker Hub 簡介
2.3.3 註冊 Docker Hub 帳號
2.3.4 搜索映像
2.3.5 共享自動建構映像
2.4 建立私有倉庫
2.4.1 映像分發服務
2.4.2 Docker Registry HTTP API
2.4.3 部署私有倉庫
2.5 本章小結
Chapter 03 管理和使用容器
3.1 管理容器
3.1.1 建立容器
3.1.2 容器的啟動過程
3.1.3 列出容器
3.1.4 容器的命名
3.1.5 啟動和停止
3.1.6 暫停和恢復
3.1.7 重啟容器
3.1.8 刪除容器
3.2 連接到容器
3.2.1 查看處理序資訊
3.2.2 查看容器資訊
3.2.3 容器日誌
3.2.4 附加到容器
3.2.5 在容器中執行命令
3.3 容器的儲存與移植
3.3.1 提交容器更改
3.3.2 容器的匯入 / 匯出
3.4 本章小結
Chapter 04 資料卷與網路
4.1 資料卷
4.1.1 關於資料卷
4.1.2 資料卷的特點
4.1.3 建立資料卷
4.1.4 掛載資料卷
4.1.5 刪除資料卷
4.2 資料卷容器
4.2.1 關於資料卷容器
4.2.2 建立資料卷容器
4.2.3 連接資料卷容器
4.2.4 資料卷的移植
4.3 網路基礎
4.3.1 網路簡介
4.3.2 查詢網路設定
4.4 存取網路
4.4.1 宿主機連接埠映射
4.4.2 容器連接
4.5 本章小結
Chapter 05 製作映像
5.1 瞭解Dockerfile
5.1.1 Dockerfile 簡介
5.1.2 使用Dockerfile 建立映像
5.2 基礎指令
5.2.1 FROM
5.2.2 MAINTAINER
5.3 控制指令
5.3.1 RUN
5.3.2 WORKDIR
5.3.3 ONBUILD
5.4 引入指令
5.4.1 ADD
5.4.2 COPY
5.5 執行指令
5.5.1 CMD
5.5.2 ENTRYPOINT
5.6 配置指令
5.6.1 EXPOSE
5.6.2 ENV
5.6.3 LABEL
5.6.4 USER
5.6.5 ARG
5.6.6 STOPSIGNAL
5.6.7 SHELL
5.7 特殊用法
5.7.1 環境變數
5.7.2 指令解析
5.7.3 忽略檔案
5.8 本章小結
Part 2 實踐篇
Chapter 06 製作映像
6.1 在 Docker 中使用 SSH
6.1.1 SSH 簡介
6.1.2 SSH 使用方法簡介
6.1.3 資料卷管理容器
6.1.4 使用 SSH 服務容器
6.2 建構 SSH 服務映像
6.2.1 建構方式比較
6.2.2 透過提交建構
6.2.3 使用 Dockerfile 建構
6.3 本章小結 137
Chapter 07 Web 伺服器
7.1 Web 服務簡介
7.1.1 全球資訊網與網站
7.1.2 Web 服務
7.1.3 Web 服務程式
7.2 Apache
7.2.1 Apache 簡介
7.2.2 安裝 Apache
7.2.3 建構 Apache 映像
7.2.4 測試 Apache 容器
7.3 Nginx
7.3.1 關於 Nginx
7.3.2 安裝 Nginx
7.3.3 建構 Nginx 映像
7.3.4 測試 Nginx 映像
7.4 Tomcat
7.4.1 Tomcat 簡介
7.4.2 安裝 Tomcat
7.4.3 建構 Tomcat 映像
7.5 本章小結
Chapter 08 資料庫程式
8.1 MySQL
8.1.1 MySQL 簡介
8.1.2 安裝 MySQL
8.1.3 建構 MySQL 映像
8.1.4 測試 MySQL 容器
8.2 MongoDB 172
8.2.1 MongoDB 簡介
8.2.2 安裝 MongoDB
8.2.3 建構 MongoDB 映像
8.2.4 測試 MongoDB 容器
8.3 本章小結
Chapter 09 快取工具
9.1 Memcached
9.1.1 Memcached 簡介
9.1.2 安裝 Memcached
9.1.3 建構 Memcached 映像
9.1.4 測試 Memcached 容器
9.2 Redis
9.2.1 Redis 簡介
9.2.2 安裝 Redis
9.2.3 建構 Redis 映像
9.2.4 測試 Redis 容器
9.3 本章小結
Chapter 10 動態處理常式
10.1 Java
10.1.1 Java 簡介
10.1.2 安裝 Java
10.1.3 建構 Java 映像
10.1.4 測試 Java 容器
10.2 PHP
10.2.1 PHP 簡介
10.2.2 安裝 PHP
10.2.3 建構 PHP 映像
10.2.4 測試 PHP 容器
10.3 Python
10.3.1 Python 簡介
10.3.2 安裝 Python
10.3.3 建構 Python 映像
10.3.4 測試 Python 容器
10.4 Node.js
10.4.1 Node.js 簡介
10.4.2 安裝 Node.js
10.4.3 建構 Node.js 映像
10.4.4 測試 Node.js 容器
10.5 本章小結
Chapter 11 綜合演練
11.1 演練目標
11.1.1 目標概述
11.1.2 撰寫程式
11.2 建構環境
11.2.1 準備映像
11.2.2 程式設定
11.3 執行專案
11.3.1 啟動容器
11.3.2 測試專案
11.4 本章小結
Part 3 提升篇
Chapter 12 網路進階
12.1 網路實作
12.1.1 容器網路基礎
12.1.2 網路模型
12.2 Docker 中的網路
12.2.1 預設網路
12.2.2 自訂網路
12.2.3 容器與外部通訊
12.2.4 容器間通訊
12.3 網路實踐
12.3.1 管理容器網路
12.3.2 容器連接網路
12.3.3 設定 docker0 橋接器
12.3.4 自訂橋接器
12.3.5 設定 DNS
12.3.6 使用 IPv6
12.4 本章小結
Chapter 13 強化安全性
13.1 深入理解 Docker 安全
13.1.1 命名空間隔離
13.1.2 資源控制群組
13.1.3 核心能力機制
13.2 資源使用限制
13.2.1 透過控制群組限制
13.2.2 透過 ulimit 限制
13.2.3 網路存取限制
13.3 校驗與監控
13.3.1 映像簽章
13.3.2 執行狀態監控
13.4 聯級防護
13.4.1 組合虛擬化
13.4.2 檔案系統安全
13.5 核心安全技術
13.5.1 Capability
13.5.2 SELinux
13.5.3 AppArmor
13.6 本章小結
Chapter 14 Docker API
14.1 關於 Docker API
14.1.1 通用操作介面
14.1.2 關於 RESTful
14.1.3 Docker API 的優勢
14.1.4 Docker API 的分類
14.2 使用 Docker Remote API
14.2.1 關於 Docker Remote API
14.2.2 Docker Remote API 的版本
14.2.3 透過 Remote API 列出容器
14.2.4 透過 Remote API 列出映像
14.3 使用 Docker Registry API
14.3.1 關於 Docker Registry API
14.3.2 Docker Registry API 的主要功能
14.3.3 Docker Registry API 的版本
14.3.4 透過 Registry API 拉取映像
14.3.5 透過 Registry API 推送映像
14.4 本章小結
Chapter 15 管理工具
15.1 Docker Compose
15.1.1 Docker Compose 簡介
15.1.2 安裝 Docker Compose
15.1.3 Docker Compose 設定檔
15.1.4 常用的 Docker Compose 命令
15.2 Docker Machine
15.2.1 Docker Machine 簡介
15.2.2 安裝 Docker Machine
15.2.3 Docker Machine 常見命令
15.3 Docker Swarm
15.3.1 Docker Swarm 簡介
15.3.2 Docker Swarm 結構
15.3.3 使用 Docker Swarm
15.3.4 Docker Swarm 常見命令
15.4 本章小結
Chapter 16 Docker 的技術架構
16.1 命名空間
16.1.1 關於 Linux 命名空間
16.1.2 命名空間的系統呼叫
16.1.3 命名空間的分類
16.2 控制群組
16.2.1 關於 Linux 控制群組
16.2.2 CGroups 的組成
16.2.3 容器與控制群組
16.3 聯合檔案系統
16.3.1 關於UFS
16.3.2 Docker 中的UFS
16.4 Docker Engine 架構
16.4.1 Docker Engine 的組成結構
16.4.2 Docker Daemon
16.4.3 Docker CLI
16.5 本章小結