Docker

開源容器化平台,實現「建置一次,到處執行」

容器 vs 虛擬機

傳統虛擬機包含 Guest OS,需要 Hypervisor,啟動慢、資源佔用高。容器共享 Host Kernel,僅包含應用程式與相依函式庫,啟動快、資源使用更有效率。

核心元件

基本指令

# Image 操作 docker pull ubuntu:22.04 docker images docker build -t my-app:1.0 . docker push registry.example.com/my-app:1.0 # Container 操作 docker run -d --name my-container -p 8080:80 nginx docker ps docker ps -a docker stop my-container docker rm my-container # 其他 docker exec -it my-container bash docker logs my-container docker compose up -d

Dockerfile 範例

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

Docker Compose

使用 YAML 定義多容器應用,適合本地開發環境。可一次啟動多個服務(Web、資料庫、快取等),並配置網路與磁碟掛載。

本課程範例

相關連結