第一部份:
會透過一系列的實習體會 Docker 技術所帶來的簡單、方便、標準等的好處,過程中會觸及 Docker 不同的技術,但不會過份細膩教授當中的細節,目標是對 Docker 有一個概觀。
- 安裝 Docker
- 取得 Images
- 產生 Containers
- 執行 Containers
- Port mappings
- 狀態檢查
- 進入 Containers
- 停止 Containers
- 還原
第二部份:
將會細膩教授和實踐 Docker 各種技術,如 Images、Dockerfile、data persistence and sharing、containers、container networking and name resolution mechanisms、register servers、services等,這部份完結後,同學能夠更靈活和準確地實踐 Docker 技術。
- 可以隔離的部份
- data persistence and sharing
- 將檔案從 Containers 複製到本機檔案系統
- 將檔案從本機檔案系統複製到 Containers
- Volumes
- Read-only volume
- 連結本機檔案系統
- 數個 Containers 共用的 volumes
- Images
- 搜尋 Images
- 取得 Images、精準地取得指定版本的 Images
- Images → Containers
- Containers → Images / Customized Images
- Export images
- Import images
- Dockerfile 及相關的參數
- Dockerfile → Images / Customized Images
- Containers
- 建立而不運行的 Containers
- 建立而運行的 Containers
- 建立 “即用即棄” 的 Containers
- A container is a single process?
- 取得 Container 的詳細資料
- Export Containers
- 取得 “logs”
- 進入 Containers 並安裝軟件
- Container networking
- docker0
- default bridge
- default bridge 的限制
- 如何 “分配” IP addresses
- Container 上網
- Container LAN cards
- 新增 bridge / 刪除 bridge
- 將 Containers 連接到不同的 bridges 內
- 將 Containers 同時連接到不同的 bridges 內
- Routing and switching in docker environment
- Name resolutions in docker environment
- Port mappings
- “--link” (legacy),根據 Docker 的文件顯示, “The --link flag is a deprecated legacy feature of Docker. It may eventually be removed.” 但由於仍有不少地方仍使用 “--link”,所以仍會教授和實戰這 option,導師亦會在課堂上教授和實戰另一些較好的做法。
- Local Registry
- Local Registry 的作用和角式
- 建立 Local Registry
- push and pull
- Services
- docker-compose
- docker-compose.yml及相關的參數
- 執行 docker-compose
第三部份
導師將會示範如何使用 Docker 架設不同的系統、資料庫等,以實戰的角度學習 Docker。例如導師會在課堂上示範如果使用數句指令就能架設以下的伺服器。相信以下已經涵蓋一般工作所需要用到的伺服器。
- Ubuntu: 並會在 Ubuntu 內安裝軟件。
- CentOS: 並會在 CentOS 內安裝軟件。
- Nginx: 並會在 Nginx 內的 Web Server 放置網頁,架設能夠投產使用的 web server。
- Apache + PHP + MySQL + phpMyAdmin: 並會示範透過 PHP 接駁 MySQL、使用 phpMyAdmin 接駁 MySQL、在 Docker 環境下安裝 PHP extensions 等。
- Java, Standard Edition (SE): 並會示範編譯和執行 Java 程式。
- Java, Enterprise Edition (EE) [JSP / Servlet]: 並會示範設定 Apache Tomcat 伺服器和上載 WAR (Web application ARchive) 檔。
- Python: 並會示範執行 python 程式以計算 permutations。
- Node.js + MongoDB (Document database / NoSQL): 並會示範透過 Node.js 接駁 MongoDB 及簡介相關技術。
- Node.js + Redis (In-memory data structure store): 並會示範透過 Node.js 接駁 Redis 及簡介相關技術。
- WordPress + MariaDB + phpMyAdmin: 並會示範簡單地建立網站及使用 phpMyAdmin 查看 MariaDB 資料庫內的值。
- Neo4j (Graph database): 並會示範在 Neo4j browser 內觀看預設的 movie graph,並執行預設所供的 Cypher queries。
- odoo (前稱 OpenERP) + PostgreSQL: 並會瀏覽 oodo 內的各種元件。