MobileSetting logo 流動科技
雲端技術科技資訊

Docker 入門教學 2026:香港開發者從零開始學容器化部署

Docker 係現代部署必備技術。本文由安裝 Docker Desktop、第一個 Container、Docker Compose 到部署上 Zeabur/Railway,帶香港開發者完整入門容器化。

Docker 入門教學 2026:香港開發者從零開始學容器化部署

Docker 入門只需三步:安裝 Docker Desktop → 執行 docker run hello-world 測試 → 用 Dockerfile 打包自己嘅 App,整個流程 30 分鐘內完成,Mac/Windows/Linux 全支援。

「喺我部電腦跑得,點解上到伺服器就唔得?」呢個係幾乎每個開發者都遇過嘅問題。Docker 就係解決呢個問題嘅工具。它把你嘅 App 連同所有依賴(Python 版本、套件、環境變數)一起打包成一個「容器」,無論喺邊部電腦、邊個作業系統,跑出嚟嘅效果都一樣。學識 Docker,部署問題少一半。


Docker 係咩?點解現代開發必學?

Docker 係一個容器化工具,把應用程式及其所有運行依賴打包成一個「Image」(鏡像),再從 Image 啟動「Container」(容器)運行。

唔學 Docker 會遇到嘅問題:

  • 本地開發環境係 Python 3.11,伺服器係 Python 3.9,行為唔同
  • 新同事裝環境要半日,每次都漏步驟
  • 部署到 AWS/GCP 需要額外配置,難以重現

學識 Docker 之後:

  • 一個 Dockerfile 定義所有依賴,任何人都可以一條指令重現環境
  • 開發、測試、生產環境完全一致
  • 部署到 Zeabur、Railway、Render、AWS ECS 都用同一個 Image

2026 年,幾乎所有雲端部署平台(Zeabur、Railway、Fly.io、GCP Cloud Run)都接受 Docker 格式。學識 Docker 等於解鎖所有現代雲端平台。


安裝 Docker Desktop(Mac/Windows 步驟)

Windows 安裝:

  1. 確認 Windows 版本:需要 Windows 10 版本 2004 以上(Build 19041+)或 Windows 11
  2. 確認已啟用 WSL2(Windows Subsystem for Linux 2):
    • 打開 PowerShell(管理員),輸入:wsl --install
    • 重啟電腦
  3. docker.com/products/docker-desktop 下載 Docker Desktop for Windows
  4. 安裝時選擇「Use WSL 2 instead of Hyper-V」
  5. 安裝完成後重啟,打開 Docker Desktop,等待圖示由橙色變綠色

macOS 安裝:

  1. 去同一個頁面,根據你的晶片選擇 Intel 版或 Apple Silicon(M1/M2/M3)版
  2. 下載 .dmg 文件,拖入 Applications 資料夾
  3. 打開 Docker Desktop,菜單欄會出現 Docker 圖示
  4. 首次啟動需要輸入系統密碼授權

驗證安裝成功: 打開 Terminal(或 Windows 的 PowerShell),輸入:

docker --version
docker run hello-world

如果見到 “Hello from Docker!” 訊息,代表安裝成功,Docker 正常運行。


基本指令教學(run/build/push/pull/compose)

學識以下指令,足夠應付日常 80% 嘅 Docker 操作:

下載並運行現有 Image:

docker pull nginx           # 從 Docker Hub 下載 nginx Image
docker run -p 8080:80 nginx # 啟動 nginx,把容器 80 端口映射到本地 8080

打開瀏覽器輸入 localhost:8080,就可以見到 nginx 歡迎頁面。

建立自己嘅 Image: 先在項目根目錄建立 Dockerfile

FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "app.py"]

然後:

docker build -t my-python-app .  # 建立 Image,名叫 my-python-app
docker run -p 5000:5000 my-python-app  # 啟動容器

其他常用指令:

docker ps             # 查看正在運行嘅容器
docker ps -a          # 查看所有容器(包括已停止)
docker stop [容器ID]  # 停止容器
docker rm [容器ID]    # 刪除容器
docker images         # 查看本地所有 Image
docker rmi [Image名]  # 刪除 Image
docker logs [容器ID]  # 查看容器日誌

推送到 Docker Hub:

docker login
docker tag my-python-app 你的用戶名/my-python-app:latest
docker push 你的用戶名/my-python-app:latest

推送後,任何人(或任何伺服器)都可以用 docker pull 你的用戶名/my-python-app 下載你嘅 Image。


Docker Compose:多容器應用管理

現實中,應用程式通常唔止一個容器——Web App + Database + Cache 係常見組合。Docker Compose 讓你用一個 YAML 文件管理多個容器。

典型 docker-compose.yml(Django + PostgreSQL):

version: '3.8'
services:
  web:
    build: .
    ports:
      - "8000:8000"
    environment:
      - DATABASE_URL=postgresql://user:pass@db:5432/mydb
    depends_on:
      - db

  db:
    image: postgres:15
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: pass
      POSTGRES_DB: mydb
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:

常用 Compose 指令:

docker compose up -d      # 背景啟動所有服務
docker compose down       # 停止並移除所有容器
docker compose logs -f    # 查看所有服務日誌(即時更新)
docker compose ps         # 查看服務狀態
docker compose exec web bash  # 進入 web 容器的 shell

Docker Compose 係本地開發同測試最方便嘅工具,一條 docker compose up 就可以把整個開發環境拉起,唔需要逐個服務手動啟動。


部署到 Zeabur/Railway(從本地到雲端)

有咗 Dockerfile,部署到雲端非常簡單。以 ZeaburRailway 為例:

部署到 Zeabur:

  1. 把代碼(包括 Dockerfile)push 到 GitHub
  2. zeabur.com,建立新 Project
  3. 選「Deploy from GitHub」,授權並選擇你的 Repository
  4. Zeabur 會自動偵測 Dockerfile,建立並部署
  5. 部署完成後,得到一個 .zeabur.app 域名

環境變數設定: 喺 Zeabur 或 Railway 的 Dashboard 設定 Environment Variables,唔好把敏感資訊(API Key、DB 密碼)寫喺代碼入面。Dockerfile 用 ENV 只設定預設值,真實值從平台 Dashboard 注入。

Railway 部署步驟類似:

  1. railway.app,連接 GitHub
  2. 選 Repository,Railway 自動偵測 Dockerfile 並部署
  3. Railway 亦支援直接喺 Dashboard 添加 PostgreSQL、Redis 等服務

兩個平台都提供免費試用額度(Railway $5/月免費,Zeabur 按資源計費),對個人項目足夠。


常見問題 FAQ

Q1:Docker 同虛擬機(VM)有咩分別? 虛擬機模擬完整硬件,每個 VM 跑獨立作業系統,資源消耗大(通常幾 GB RAM)。Docker 容器共享主機作業系統內核,只隔離應用層,啟動只需幾秒,資源消耗小好多。同樣一部電腦可以跑幾十個 Docker 容器,但可能只跑得起幾個 VM。

Q2:Docker Desktop 免費嗎? 個人使用完全免費。企業用途(員工超過 250 人或年收入超過 $1,000 萬美元)需要付費訂閱。對個人開發者同小型團隊,免費版係足夠嘅。

Q3:點解我的容器一停止就失去所有數據? 容器本身係無狀態嘅(Stateless),停止後數據消失係正常行為。要持久保存數據,需要用 Volume-v 標誌)或 Bind Mount 把容器內嘅路徑映射到主機目錄,或使用外部數據庫服務。

Q4:.dockerignore 係做咩嘅?.gitignore 類似,.dockerignore 告訴 Docker 喺 COPY . . 時忽略哪些文件。常見內容:node_modules/.env__pycache__/.git/。不加 .dockerignore 會導致 Image 體積龐大,build 時間增加。

Q5:Windows 上跑 Docker 比 Mac/Linux 慢? 係嘅,Windows 下 Docker Desktop 通過 WSL2 運行,I/O 性能略遜於原生 Linux。如果你的項目 I/O 密集(如大量文件操作),把代碼放喺 WSL2 文件系統(/home/user/)而非 Windows 文件系統(/mnt/c/)可以大幅提升速度。