開始使用 Docker 安裝以及運行第一個容器、命令概覽及操作

摘要

  • 0:00 - 歡迎與課程簡介

  • 1:04 - Windows 上安裝 Docker 的準備工作

  • 2:34 - Windows 上的虛擬化技術 (WSL vs Hyper-V)

  • 4:03 - Windows 安裝 Docker 步驟

  • 5:33 - Mac 上安裝 Docker Desktop

  • 7:31 - Linux 上安裝 Docker

  • 10:18 - 運行第一個 Docker 容器

  • 13:05 - Docker run 與容器操作基礎

  • 16:59 - Docker stop 與 start 命令

  • 19:00 - 容器刪除操作 (docker rm)

  • 20:53 - Docker run 與 Docker start 的區別

  • 22:23 - 進階操作 - 日誌查看與容器互動

  • 25:35 - 容器內部檔案瀏覽 (docker exec)

  • 28:28 - 常見問題與解決方案

  • 30:44 - 總結與下一步


在本課程中,您將學習使用 Python 進行容器化的基礎知識。容器化是一種更有效率且可擴展的方式來打包、分發和運行應用程式。具體來說,您將學習如何使用 Docker 來建立並運行您的第一個 Python 應用程式容器。

我們將指導您完成在系統上設置 Docker、拉取基礎映像,幫助你掌握 Docker 基本指令和操作流程。在課程結束時,您將對容器的工作原理有深入的理解。

課程核心概念:

  • 理解容器化的基本原理

  • 在您的系統上安裝和配置 Docker

  • 掌握 Docker 基本指令和操作流程

  • 了解容器化應用的最佳實踐

註:根據 Docker 的授權協議,在大型企業中使用 Docker Desktop(超過 250 名員工或年收入超過 1000 萬美元)需要付費訂閱。個人使用或小型企業可以免費使用。


在不同作業系統上安裝 Docker

Linux 安裝

  • 安裝 Docker Engine

# 下載安裝腳本
curl -fsSL https://get.docker.com -o get-docker.sh

# 檢視腳本內容(建議執行)
sudo sh ./get-docker.sh --dry-run

# 執行安裝腳本
sudo sh ./get-docker.sh

# 將當前用戶新增到 docker 群組(可選)
sudo usermod -aG docker $USER

# 驗證安裝
sudo docker --version

在 Amazon Linux 2 或 Amazon Linux 2023 安裝 Docker

sudo yum update -y

# Amazon Linux 2
sudo amazon-linux-extras install docker

# Amazon Linux 2023
sudo yum install -y docker

# 將當前用戶新增到 docker 群組(可選)
sudo usermod -aG docker $USER

# 驗證安裝
sudo docker --version

參考資源:

  • 在 AL2023 上安裝 Docker

Mac OS 安裝

根據你的處理器晶片(Intel 或是 Apple 晶片)並且下載 Mac 版 Docker Desktop

  • https://docs.docker.com/desktop/setup/install/mac-install/

參考:

  • 配備 Apple 晶片的 Mac 電腦

Windows 安裝

  • 確認系統需求:Windows 10/11 以上版本

  • 開啟 Hyper-V 或 Windows Subsystem for Linux (WSL)

  • 參考文件:如何以系統管理員身分執行命令提示字元?

  • 下載 (Docker Desktop for Windows):Windows | Docker Doc

[推薦] 方法一:啟用 Windows Subsystem for Linux (WSL)

要檢查是否啟用 WSL 以及當前的版本,可以以開啟命令提示字元 (快捷鍵:Windows Key + R > 輸入 cmd) 輸入以下命令檢查是否有任何輸出:

wsl --version

要更新 WSL 版本,請以系統管理員身份開啟「命令提示字元」並且輸入以下命令:

wsl --update

安裝 WSL

以系統管理員身份開啟「命令提示字元」並且輸入以下命令:

wsl --install

參考:

  • 如何使用 WSL 在 Windows 上安裝 Linux

方法二:啟用 Hyper-V

  1. 在工作列搜尋 Windows 功能 > 選擇「開啟或關閉 Windows 功能」

  2. 開啟 Hyper-V 和「容器」(Container ) 兩個選項並且重新啟動

在 Windows 10 家用版開啟Hyper-V

請將以下指令存成 .bat 檔,並 使用管理員身份執行,執行完後需 重新開機 才會生效。

pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V -All /LimitAccess /ALL
pause

Hyper-V 移除指令

dism /online /disable-feature /featurename:microsoft-hyper-v-all

參考資源:

  • Windows 上的 Docker 引擎

  • YouTube -【教學】如何在Win10 家用版上 開啟Hyper-V

Python 容器化實戰課程

Buy nowLearn more

簡介

  • 如何學習這門課程

了解容器 (Container) 以及實際的應用

  • 為什麼要使用容器技術?
  • 容器虛擬化技術基礎: namespace, Docker, Podman
  • 開始使用 Docker 安裝以及運行第一個容器、命令概覽及操作
  • 實作練習 (Docker)
  • 知識檢查:Docker 基礎
  • 開始使用 Podman 安裝以及運行第一個容器、命令概覽及操作
  • 實作練習 (Podman)
  • 知識檢查:Podman 基礎

(可選) AWS 環境的準備工作

  • 設定 AWS 帳號 - 使用新版 AWS 主控台介面建立一個 IAM User
  • 設定 AWS 帳號 - AWS CLI 工具設定

掌握容器映像 (Container Image)

  • 容器映像建立與運行
  • 容器映像建立與運行:實作練習建立一個簡易的 NumPy 容器化應用程式
  • 深入探索 Dockerfile
  • 實作練習:進階 Dockerfile 指令
  • 知識檢查:進階 Dockerfile
  • 推送到映像倉庫:ECR、DockerHub

容器技術的進階應用

  • 容器網路介紹 (Container Networking)
  • 實作練習:自訂義容器網路
  • 容器儲存介紹 (Volume)
  • 實作練習:容器儲存方案
  • 使用容器輕鬆建立本機 Python 環境並且進行開發
  • 知識檢查:容器技術的進階應用

Python 容器化應用程式封裝與最佳實務

  • 深入探討 Python 應用程式封裝技巧以及容器化:pip、Virtual Environment (virenv)
  • 實作練習:Python 虛擬環境與容器化基礎
  • 細談 Container Image 和建立容器映像的最佳實務
  • 實作練習:優化容器映像
  • 容器化應用執行效能優化 (cgroup)、記憶體資源管理和除錯
  • 實作練習:容器常見退出除錯

單元測試 (Unit Tests) 和軟體設計實務實踐

  • 單元測試與容器的完美結合
  • 容器化應用程式最佳實踐:無狀態應用程式設計
  • 容器化應用程式最佳實踐:應用程式設計模式

規模部署容器化應用程式

Delayed 28 days

  • Amazon ECS 簡介
  • AWS Fargate 簡介
  • AWS Fargate 部署實戰演練
  • 規模部署 ECS 應用:網頁服務以及負載均衡器部署策略
  • AWS 容器應用最佳實踐:安全連接資料庫、成本優化與優雅退出策略
  • 實作練習:應用最佳實踐整合 Deepseek & OpenAI ChatGPT 建立應用程式
  • AWS 容器應用最佳實踐:ECS 自動擴展
  • 自訂域名 (Domain) 及證書

設計 CI/CD Pipeline

Delayed 35 days

  • DevOps 及 CI/CD 簡介
  • 整合 GitHub 完成自動化 CI/CD 部署流程