Dockerfile Image
Dockerfile 是一份「建映像的腳本」:一行一條指令,從基底映像開始,一步步複製檔案、裝相依、設定環境,最後產出一張可重現的映像。這頁講它跟 build context 的關係,並從零搭一個。前提是你已會基本 docker 指令(見 CLI 指令)。
build context 與 tag
docker build -t myapp:1.0 . 這行:
-t myapp:1.0:映像 tag(名稱:版本,省略版本預設latest)。- 結尾的
.:build context。builder 只能看到 context 內的檔案,context 外的路徑讀不到。 -f:指定 Dockerfile 位置(預設是 context 根目錄的Dockerfile)。
.dockerignore
語法同 .gitignore,放在 context 根目錄,把不該送進 builder 的東西擋掉,縮小 context 也避免無謂的 cache 失效:
** 多層萬用與 ! 否定(例外保留)。context 越大送得越慢,.dockerignore 是該預設準備的一個檔。
從零搭一個 Dockerfile
挑基底映像(FROM)
從一個合適的基底開始,固定版本 tag 不要用
latest(選映像見 選擇映像):裝相依、複製程式(COPY + RUN)
先複製相依清單、裝好,再複製原始碼(順序有講究,見 layer cache):
接下來
- Dockerfile 指令逐一:每個指令的語義與差異。
- 配合 Python 程式:實際範例與 multi-stage。
- Layer cache 與最佳實踐:為什麼指令順序很重要。