昨天學了Dockerfile簡單指令,所以今天來學習如何Build自己形狀的Image!
要準備使用 docker build 指令來構建 Docker 映像,首先需要確保你已經有一個撰寫好的 Dockerfile,並且該文件位於你的工作目錄中。接著,你可以使用以下步驟與指令來構建你的映像:
Dockerfile,以及任何相關的資源文件(如配置檔案、腳本等)。my-app/
├── MyFirstDockerFile.dockerfile
└── index.html
在終端或命令行中進入包含 Dockerfile 的專案目錄:
cd /{$path}/my-app
docker build 指令使用 docker build 指令來構建 Docker 映像。
基本格式:
docker build -t <映像名稱>:<標籤> .
-t:指定映像的名稱與標籤(通常為 :latest)。.:指定當前目錄為構建上下文(上下文包括 Dockerfile 和其依賴的文件)。範例:
docker build -t my-app-image:latest .
docker build 指令的參數解析:-t(標籤)
名稱:標籤,如果不指定標籤,默認會使用 :latest。docker build -t my-app:1.0 .
-f(指定 Dockerfile)
Dockerfile 不在當前目錄或者名稱不是 Dockerfile,可以使用 -f 來指定文件位置。docker build -t my-app:latest -f ./custom-dockerfile .
--no-cache(不使用快取)
docker build --no-cache -t my-app:latest .
--build-arg(傳入構建參數)
ARG 指令傳遞變數。docker build --build-arg ENV=production -t my-app:latest .
實際跑跑Build
執行 docker build 指令後,你會看到類似以下的輸出,顯示每個指令的執行結果:
=> [internal] load build definition from MyFirstDockerFile 0.0s
=> => transferring dockerfile: 471B 0.0s
=> [internal] load metadata for docker.io/library/ubuntu:latest 2.0s
=> [auth] library/ubuntu:pull token for registry-1.docker.io 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [1/4] FROM docker.io/library/ubuntu:latest@sha256:dfc10878be8d8fc9c61cbff33166cb1d1fe44391539243703c72766894fa834a 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 31B 0.0s
=> CACHED [2/4] RUN apt-get update && apt-get install -y nginx 0.0s
=> CACHED [3/4] COPY ./index.html /var/www/html 0.0s
=> CACHED [4/4] WORKDIR /var/www/html 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:88c59df54119ccfc291766dce1fc3f692e46f91bbe5017117093065a6b281dab 0.0s
=> => naming to docker.io/library/my-app-image:latest
Dockerfile 和所需文件。docker build -t <映像名稱>:<標籤> . 指令來構建映像。-f 指定 Dockerfile,或傳入 --build-arg 等選項。構建完成後,你可以使用 docker images 查看映像,並使用 docker run 啟動容器。
