容器與平台運維 基礎
Docker 容器與虛擬機器有什麼差異?Image 和 Container 的關係是什麼?
容器 vs 虛擬機器
| 特性 | 虛擬機器 (VM) | 容器 (Container) |
|---|---|---|
| 隔離層級 | 作業系統層級 | 程序層級 |
| 啟動時間 | 分鐘 | 秒 |
| 大小 | GB | MB |
| 資源開銷 | 高(每個 VM 含完整 OS) | 低(共享 Host OS kernel) |
| 可攜性 | 較低 | 高 |
Image vs Container
Image(映像):唯讀的檔案系統快照,包含應用程式、依賴套件與設定。是靜態的模板。
Container(容器):Image 的執行實例,加入了可讀寫的層(writable layer)。是動態的執行狀態。
類比:Image 像程式碼,Container 像執行中的程序。
Dockerfile 基本結構
FROM node:18-alpine WORKDIR /app COPY package*.json ./ RUN npm ci --only=production COPY . . EXPOSE 3000 CMD ["node", "server.js"]
分層快取
Dockerfile 的每個指令創建一個層,Docker 會快取未變更的層。應將變動頻繁的指令(如 COPY . .)放在後面,讓靜態依賴的快取層得以複用,加速 build。
✦ AI 模擬面試
輸入你的答案,AI 即時分析精準度與改進空間
登入後即可使用 AI 評分
