近年來,Docker 已成為軟體開發與部署的標準工具之一。無論是後端工程師、資料科學家,還是 DevOps 人員,都會用它來快速建置環境與部署應用。
其中最關鍵的一個檔案就是 — Dockerfile。
這篇文章將帶你從零開始了解 Dockerfile 是什麼、怎麼寫、常見錯誤與實戰範例。
一、什麼是 Dockerfile?
簡單來說,Dockerfile 是一份自動化建構映像檔的腳本。
它記錄了從基底系統開始,一步步建立環境的指令,例如安裝套件、複製程式碼、設定執行命令等。
Dockerfile 就像一份「食譜」,你把步驟寫清楚,Docker 就能自動幫你「煮出」一個可執行的容器映像。
二、基本結構與常用指令
以下是最常用的 Dockerfile 指令:FROM:指定基底映像,例如 Ubuntu、Node.jsWORKDIR:設定容器內的工作目錄COPY:複製檔案到容器中RUN:在建構時執行指令(例如安裝套件)CMD:指定容器啟動時要執行的指令EXPOSE:開放容器的對外連接埠ENV:設定環境變數
三、範例:建立一個 Node.js 應用映像檔
假設你有一個簡單的 Node.js 專案,結構如下:
docker-file/
├── app.js
├── package.json
└── Dockerfile
🔹 app.js
const express = require('express');
const app = express();
const PORT = 3000;
app.get('/', (req, res) => {
res.send('Hello Docker!');
});
app.listen(PORT, () => {
console.log(`Server running on port ${PORT}`);
});
🔹 package.json
{
"name": "demo-app",
"version": "1.0.0",
"dependencies": {
"express": "^4.17.1"
}
}
Dockerfile
# 使用官方 Node.js 14 作為基底映像
FROM node:14
# 設定工作目錄
WORKDIR /usr/src/app
# 複製套件資訊
COPY package*.json ./
# 安裝依賴套件
RUN npm install
# 複製所有程式碼
COPY . .
# 開放 3000 port
EXPOSE 3000
# 啟動應用
CMD ["node", "app.js"]
四、建構與執行容器
Step 1️:建構映像檔
docker build -t my-nodejs-app:1 .
這行指令會根據 Dockerfile 內容,自動建立一個名為
my-nodejs-app的映像檔。
Step 2️:查看映像檔
docker imagesStep 3️:執行容器
docker run -d -p 3000:3000 my-nodejs-app:1
現在打開瀏覽器輸入
http://localhost:3000
你就會看到「Hello Docker!」的訊息
五、總結
重點 說明
Dockerfile 是映像建構的自動化腳本 讓環境部署更一致、更方便
常用指令:FROM、COPY、RUN、CMD 每個指令都是環境設定的一步
實作重點:build → run → 測試 逐步驗證環境可用性
結語
Dockerfile 的出現,大幅降低了環境設定的難度,讓「開發即部署」成為可能。 無論你是開發新手或 DevOps 工程師,都值得花點時間掌握這項技能。





