加入 Systematic Facebook 擁躉群  

這個頁面上的內容需要較新版本的 Adobe Flash Player。

取得 Adobe Flash Player


想定期知道最新課程及優惠嗎?
免費訂閱本中心的課程通訊!

課堂錄影隨時睇 10 大優點之時間自由:無論您是夜班或輪班工作,在日間或晚間亦可隨時來上課!而視像會在您到達時才開始播放,亦可按您需要而隨時暫停,不會因遲到或人有三急而錯過課程任何重點!

Docker 軟體容器 (Containers) 虛擬化課程

  • 課程時間
  • 課程簡介
  • 課程內容
  • 詳細內容

推介服務:課堂錄影隨時睇
編號 地點 可預約星期及時間 學費低至 85 折  
1X1812MV 旺角 一至五:11:30 - 22:30   六及日:10:30 - 21:30   (公眾假期休息) 95 折後只需 $1,406 按此報名
1X1812OV 觀塘 一至五:13:30 - 22:00   六及日:12:30 - 21:00   (星期三及公眾假期休息) 9 折後只需 $1,332 按此報名
1X1812PV 北角 一至五:13:30 - 22:00   六及日:12:30 - 21:00   (星期三及公眾假期休息) 9 折後只需 $1,332 按此報名
1X1812SV 沙田 一至五:13:30 - 22:00   六及日:12:30 - 21:00   (星期三及公眾假期休息) 85 折後只需 $1,258 按此報名
1X1812YV 屯門 一至五:13:30 - 22:00   六及日:12:30 - 21:00   (星期三及公眾假期休息) 85 折後只需 $1,258 按此報名
* 各政府部門可使用 P Card 付款  
免費試睇: 首 1 小時,請致電與本中心職員預約。 查看各地點電話
旺角 2332-6544
觀塘 3563-8425
北角 3580-1893
沙田 2151-9360
屯門 3523-1560
免費重睇: 學員可於享用時期內於報讀地點不限次數地重看課堂錄影,從而可反覆重溫整個課程!
導師解答: 學員可於觀看某一課堂錄影後提出課堂直接相關的問題,課程導師會樂意為學員以單對單的形式解答!
課時: 12 小時
享用時期: 報讀日至 4 星期內,進度由您控制,可快可慢。
課堂錄影導師: Franco (任教課程清單)
課堂錄影隨時睇: 詳情及示範片段


地區 地址 電話 教育局註冊編號
旺角 九龍旺角亞皆老街 109 號,皆旺商業大廈 18 樓 2332-6544 533459
觀塘 九龍觀塘成業街 7 號寧晉中心 12 樓 G2 室 3563-8425 588571
北角 香港北角馬寶道 41-47 號華寶商業大廈 3 樓 01-02 號舖 3580-1893 591262
沙田 新界沙田石門安群街 3 號京瑞廣場 1 期 10 樓 M 室 2151-9360 604488
屯門 新界屯門屯喜路 2 號屯門柏麗廣場 17 樓 1708 室 3523-1560 592552
注意! 客戶必須查問報讀學校的教育局註冊編號,以確認該校為註冊學校,以免蒙受不必要的損失!



Docker 是一個軟體容器的開放原始碼軟件,軟體容器有點似 Virtual Machines,可以在獨立隔離的環境下執行程式,但軟體容器不像 Virtual Machines 般需要使用 Hypervisors。軟體容器是一個高效、輕便、獨立的系統。Container 技術是現時其中一項流行的技術,各大雲端平台均支持 Docker 技術。

使用 Docker 有甚麼好處?

  • Docker 可以像 Virtual Machines 般在獨立隔離的環境下執行程式。
  • Docker 映像檔設計獨特,令我們可以方便打包及部署應用程式。
  • Docker 映像檔可移性高,這表示我們可以透過交換映像檔以確保程式在不同的環境中都可以正確執行出來。而如果只是交付程式碼的話就有可能因為測試環境和生產環境不同而需要費時處理當中的問題。
  • 在 Docker Hub (https://hub.docker.com/explore/)上已經有大量現成的映像檔 (Images) 可供免費下載使用,常中包括常用的 Ubuntu, CentOS, Apache HTTP Server, MySQL, WordPress 等等。令我們可以使用數個指令就可以 “裝好及使用” Ubuntu, WordPress 等,可謂方便、簡單、標準。 以後安裝 WordPress 就不再需要 install web servers、install databases 等,直接使用 Docker Hub 上下載映像檔 (Images) 及稍為設定一下便可以使用。



本課程旨在有系統及有效率地教授各項 Docker 的功能及實踐所需的相關技術。課程主要分三個部份。

第一部份:會透過一系列的實習體會 Docker 技術所帶來的簡單、方便、標準等的好處,過程中會觸及Docker 不同的技術,但不會過份細膩教授當中的細節,目標是對 Docker 有一個概觀。

第二部份:將會細膩教授和實踐 Docker 各種技術,如 Images、Dockerfile、data persistence and sharing、containers、container networking and name resolution mechanisms、register servers、services 等,這部份完結後,同學能夠更靈活和準確地實踐 Docker 技術。

第三部份:導師將會示範如何使用 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 內的各種元件。

課程時數: 12 小時 (共 4 堂)
適合人士: 對 Docker Container 技術有興趣的人士
授課語言: 以廣東話為主,輔以英語
課程筆記: 本中心導師親自編寫中文為主筆記,而部份中文字附有英文對照。

第一部份:
會透過一系列的實習體會 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 內的各種元件。



1 Container 技術與 Docker
1.1 Container 技術
1.2 Docker
1.3 Docker vs Virtual Machines
1.4 Docker 理念
1.5 伺服器的選擇
1.6 Docker 版本
1.7 使用 Docker 的好處

2 安裝 Docker
2.1 在Linux 安裝 Docker
2.1.1 安裝 Linux (Ubuntu)
2.1.2 在 Ubuntu安裝 Docker
2.1.2.1 安裝 Docker
2.1.2.2 關於權限與 sudo 的問題
2.1.2.2.1 sudo
2.1.2.2.2 docker 群組
2.1.3 其他 Linux distributions (CentOS, Fedora 和 Debian) 的情況
2.1.3.1 CentOS
2.1.3.2 Fedora
2.1.3.3 Debian
2.2 在 Windows Server 安裝 Docker

3 體會 Docker 技術
3.1 情景
3.2 取得和檢視 images
3.2.1 取得images
3.2.1.1 預設的 registry 和 protocol
3.2.1.2 custom registry
3.2.1.3 所有版本
3.2.1.4 中途放棄
3.2.2 檢視 images
3.3 建立及啟動 containers
3.3.1 Detached vs foreground
3.3.1.1 Detached
3.3.1.2 Foreground
3.3.2 EXPOSE (incoming ports)
3.4 檢視運作中的 containers
3.5 測試
3.5.1 網絡拓撲圖 (Network topology diagram)
3.5.2 進行測試
3.6 進入 container
3.7 檢視 container 的 Linux distribution 及測試 container 是否能夠上網
3.8 檢視伺服器設定檔案
3.9 安裝軟件以修改設定檔案
3.10 離開 containers
3.11 停止及刪除 containers
3.12 刪除 images

4 各項 Docker 的元件及技術
4.1 資料分享 (hosts → containers / containers → hosts)
4.1.1 事前準備
4.1.1.1 停止所有 containers
4.1.1.2 刪除所有 containers
4.1.1.3 刪除所有 images
4.1.1.4 取得images 及 containers
4.1.2 複製資料夾及檔案
4.1.2.1 hosts → containers
4.1.2.1.1 hosts → containers:檔案
4.1.2.1.2 hosts → containers:資料夾
4.1.2.2 containers → hosts
4.1.2.2.1 containers → hosts:檔案
4.1.2.2.2 containers → hosts:資料夾
4.1.3 Bind mounts / host mounts (containers ↔ hosts)
4.1.3.1 Bind mounts / host mounts (containers ↔ hosts) :檔案
4.1.3.2 Bind mounts / host mounts (containers ↔ hosts) :資料夾
4.1.3.3 產生問題的做法
4.1.4 Volumes
4.1.4.1 Volumes 的好處 (相比 bind mounts)
4.1.4.2 新增 Volume
4.1.4.3 檢視 Volume
4.1.4.4 建立與啟動一個使用 volume 的 container
4.1.4.5 在 Volume 內新增檔案
4.1.4.6 檢視 volume 內新增檔案
4.1.4.7 新增更多 containers 並以 read-only 形式共同 volume (read-only volume)
4.1.4.8 嘗試修改 read-only volume 內的內容
4.1.4.9 測試及驗證
4.1.4.10 備份 volume (backup)
4.1.4.11 復原 volume 的內容 (restore)
4.1.4.12 事後還原
4.1.4.13 刪除 volumes
4.2 Images (映像檔)
4.2.1 事前準備
4.2.2 搜尋 images (映像檔)
4.2.3 取得 images (映像檔)
4.2.3.1 取得 latest images (映像檔)
4.2.3.2 取得特定標籤 / 版本 images (映像檔)
4.2.4 取得 images (映像檔)、進行設定並產生新的 images (映像檔)
4.2.5 輸出 (“export”) images (映像檔)
4.2.6 輸入 (“import”) images (映像檔)
4.2.7 Dockerfile
4.2.7.1 Dockerfile instructions
4.2.7.1.1 ARG
4.2.7.1.2 FROM
4.2.7.1.3 RUN
4.2.7.1.4 CMD
4.2.7.1.5 ENTRYPOINT
4.2.7.1.6 LABEL
4.2.7.1.7 EXPOSE
4.2.7.1.8 ENV
4.2.7.1.9 COPY
4.2.7.1.10 ADD
4.2.7.1.11 VOLUME
4.2.7.1.12 WORKDIR
4.2.7.2 Dockerfile 示範 1 [FROM + ENTRYPOINT]
4.2.7.3 Dockerfile 示範 2 [FROM + CMD]
4.2.7.4 Dockerfile 示範 3 [FROM + ENTRYPOINT + CMD]
4.2.7.5 Dockerfile 示範 4 [FROM + RUN + WORKDIR + COPY + VOLUME]
4.2.7.6 Dockerfile 示範 5 [FROM + RUN + WORKDIR + ADD + VOLUME]
4.3 Containers
4.3.1 建立不運作的 containers
4.3.2 建立並運作 containers
4.3.3 顯示 containers 的詳細資料
4.3.4 停止 containers
4.3.5 啟動 containers
4.3.6 Container Background → foreground 並準備可以由foreground → background
4.3.7 Container Foreground to background
4.3.8 刪除 containers
4.3.9 即用即棄 containers
4.3.10 Auto-restart containers (以 Node.js 示範此特性)
4.3.11 輸出 (“export”) Container 的檔案系統 (file system)
4.3.12 顯示 containers’ logs
4.3.13 了解 container 的資源使用情況 (CPU / Memory 等)
4.4 Docker networking
4.4.1 預設的情況
4.4.1.1 docker0 與 default bridge
4.4.1.1.1 Container 預設如何上網
4.4.1.1.2 檢視 default bridge
4.4.1.1.3 將多個 containers 接駁在 default bridge 上
4.4.1.2 host network
4.4.1.3 none network
4.4.1.4 DNS
4.4.1.4.1 預設的 DNS Servers
4.4.1.4.2 改變 Container 的 DNS Servers
4.4.2 User-defined networks
4.4.2.1 建立新 networks
4.4.2.2 將 containers 接駁到 user-defined networks
4.4.2.3 將 containers 接駁到多個一個 networks
4.4.2.4 將 containers 從 networks 中移除
4.4.2.5 User-defined networks 內的 container name resolution
4.4.2.6 刪除 user-defined networks
4.4.3 --link (legacy)
4.5 刪除無用的 Docker components
4.5.1 一次過刪除無用的 Docker components (包括 images、containers、volumes 和 networks)
4.5.2 刪除無用的 Docker containers
4.5.3 刪除無用的 Docker images
4.5.4 刪除無用的 Docker volumes
4.5.5 刪除無用的 Docker networks
4.6 Docker Compose / Services
4.6.1 安裝 Docker Compose
4.6.2 體驗 Docker Compose
4.6.3 Compose files
4.6.3.1 images
4.6.3.2 build
4.6.3.2.1 context
4.6.3.2.2 dockerfile
4.6.3.3 container_name
4.6.3.4 restart
4.6.3.5 volumes
4.6.3.6 networks
4.6.3.7 environment
4.6.4 自訂 Compose file 並起動 web server cluster
4.6.4.1 建立 Compose file
4.6.4.2 啟動 Services
4.6.4.3 停止 Services
4.6.4.4 Prefix 問題及其處理方法
4.6.5 顯示現在 Docker Compose / Service 的狀態
4.7 Registry Server (Local)
4.7.1 安裝Registry Server (Local)
4.7.2 設定及啟動Registry Server (Local)
4.7.3 從 docker hub 下載並上載到 Registry Server (Local)
4.7.4 檢視 Registry Server (Local) 的 images
4.7.5 從 Registry Server (Local) 下載 images

5 實戰 Docker
5.1 Ubuntu
5.2 CentOS
5.3 Nginx
5.4 Apache + PHP + MySQL + phpMyAdmin
5.4.1 建立 user-defined networks
5.4.2 Apache + PHP
5.4.2.1 安裝 extensions (例如接駁 MySQL 的 extensions)
5.4.3 MySQL
5.4.3.1 PHP 接駁 MySQL
5.4.4 phpMyAdmin
5.5 Java SE (Java Platform, Standard Edition)
5.6 Java EE (Java Platform, Enterprise Edition) [JSP / Servlet]
5.7 Python
5.8 Node.js + MongoDB
5.8.1 建立 user-defined networks
5.8.2 MongoDB
5.8.3 Node.js
5.8.4 Node.js 接駁 MongoDB
5.9 Node.js + Redis
5.9.1 建立 user-defined networks
5.9.2 Redis
5.9.3 Node.js
5.9.4 Node.js 接駁 Redis
5.10 WordPress + MariaDB + phpMyAdmin
5.10.1 建立 user-defined networks
5.10.2 MariaDB
5.10.3 WordPress
5.10.4 phpMyAdmin
5.11 Neo4j
5.12 odoo (Open ERP) + Postgre (PostgreSQL)
5.12.1 建立 user-defined networks
5.12.2 Postgre (PostgreSQL)
5.12.3 odoo (Open ERP)

 

更多綜合課程
  法律課程
  • 代理人的法律責任
  • 公司董事和合夥人的法律責任
  • 婚姻的法律責任
  • 遺產繼承的合法權益
  英文課程
  • IPA 拼音:級別 1 2 3 4
  普通話課程
  • 基礎普通話拼音 (免費)
  • 進階普通話拼音
  • 普通話會話:級別 1 2 3
  西班牙語文課程
  • 級別 1 2 3
  中醫課程
  • 濕疹與皮膚敏感病
  • 暗瘡與色斑 | 鼻敏感與感冒
  • 脫髮與白髮 | 從五官看健康
  攝影課程
  • 攝影初級
  • 攝影中級 (風景專題)
  風水命理課程
  • 紫微斗數:級別 1 2 3
  • 子平八字:級別 1 2 3
  • 八字風水:級別 1 2 3
  • 奇門遁甲:級別 1 2 3

這個頁面上的內容需要較新版本的 Adobe Flash Player。

取得 Adobe Flash Player