昨天學了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
啟動容器。