免費全文 部署與推理優化 入門

把模型服務包成 Docker:一份可用的基礎設定

GPU 容器化有幾個固定要處理的點,這是可以直接改用的骨架。

部署與推理優化教程封面

模型服務容器化的重點不在 Dockerfile 本身,而在映像大小、權重的取得方式與 GPU 的存取。

權重不要打進映像

把幾十 GB 的權重烤進映像,會讓每次部署都要拉一個巨大檔案。正確做法是映像只含程式與相依套件,權重掛載或啟動時下載並快取。

FROM nvidia/cuda:12.4.1-runtime-ubuntu22.04

RUN apt-get update && apt-get install -y --no-install-recommends \
        python3 python3-pip && rm -rf /var/lib/apt/lists/*

WORKDIR /app
COPY requirements.txt .
RUN pip3 install --no-cache-dir -r requirements.txt
COPY app/ ./app/

# 權重掛載進來,不打包
ENV MODEL_DIR=/models
VOLUME ["/models"]

EXPOSE 8000
CMD ["python3", "-m", "app.server"]

執行時的必要參數

docker run --rm \
  --gpus all \
  --shm-size=8g \
  -v /data/models:/models:ro \
  -p 8000:8000 \
  --health-cmd='curl -fs localhost:8000/healthz || exit 1' \
  --health-interval=30s \
  llm-serve:2026.08

三個常見問題

  • --shm-size 太小導致資料載入器崩潰——預設 64MB 對多數框架不夠。
  • 基礎映像用了 devel 版本,體積多好幾 GB。跑推論用 runtime 就夠。
  • 沒有固定套件版本,重建映像後行為改變。務必鎖定版本。
映像標籤用日期或版本號,不要用 latest。回滾時你會感謝自己。
下一步

這個主題還有更深入的實戰教程

VIP 專區收錄 50 篇進階內容:架構設計、生產環境取捨、成本與合規。 每週五新增 3 篇。

看訂閱方案 → 先逛逛 VIP 專區