Dockerfile 構建流程¶
Dockerfile 是一個文本文件,包含了構建 Docker 映像檔所需的所有指令。透過定義的流程,開發者可以自動化地建立一致的執行環境^[600-developer-docker-dockerfile-dockerfile-01.md]。
構建流程概述¶
構建 Docker 映像檔的標準流程通常包含編寫腳本、執行構建指令以及運行容器^[600-developer-docker-dockerfile-dockerfile-01.md]。在 Kubernetes 應用程式的開發流程中,這是用於產生新版本容器映像的核心步驟^[400-devops-06-kubernetes-kubernetes.md]。
- 準備:建立
Dockerfile與所需的相依檔案(如應用程式壓縮包)^[600-developer-docker-dockerfile-dockerfile-01.md]。 - 構建:使用
docker build指令根據 Dockerfile 生成映像檔^[600-developer-docker-dockerfile-dockerfile-01.md]。 - 運行:使用
docker run指令啟動容器^[600-developer-docker-dockerfile-dockerfile-01.md]。 - 部署:將映像檔推送到倉庫,以便部署到 Kubernetes 等平台^[600-developer-docker-dockerfile-dockerfile-01.md, 400-devops-06-kubernetes-kubernetes.md]。
常用指令¶
- FROM: 指定基礎映像檔(如
centos:7)^[600-developer-docker-dockerfile-dockerfile-01.md]。 - RUN: 執行指令(例如安裝套件
yum install -y wget)^[600-developer-docker-dockerfile-dockerfile-01.md]。 - ADD/COPY: 將檔案從主機複製到映像檔內^[600-developer-docker-dockerfile-dockerfile-01.md]。
- ENV: 設定環境變數^[600-developer-docker-dockerfile-dockerfile-01.md]。
- CMD: 定義容器啟動時執行的預設指令^[600-developer-docker-dockerfile-dockerfile-01.md]。
- EXPOSE: 指定容器對外開放的連接埠^[600-developer-docker-dockerfile-dockerfile-01.md]。
實作範例¶
以下指令常用於構建與測試:
- 構建映像檔:
docker build -t [映像檔名稱] . --no-cache^[600-developer-docker-dockerfile-dockerfile-01.md] - 運行容器:
docker run -p [主機連接埠]:[容器連接埠] [映像檔名稱]^[600-developer-docker-dockerfile-dockerfile-01.md]
Sources¶
400-devops-06-kubernetes-kubernetes.md600-developer-docker-dockerfile-dockerfile-01.md