使用 Docker 中的docker image build命令會讀取 Dockerfile,并將應(yīng)用程序容器化。
Dockerfile 由一行行命令語句組成,并支持以 # 開頭的注釋行。例如:
# Test web-app to use with Pluralsight courses and Docker Deep Dive book
# Linux x64
FROM alpine
LABEL maintainer="nigelpoulton@hotmail.com"
# Install Node and NPM
RUN apk add --update nodejs nodejs-npm
# Copy app to /src
COPY . /src
WORKDIR /src
# Install dependencies
RUN npm install
EXPOSE 8080
ENTRYPOINT ["node", "./app.js"]
使用 -t 參數(shù)為鏡像打標(biāo)簽,使用 -f 參數(shù)指定 Dockerfile 的路徑和名稱,使用 -f 參數(shù)可以指定位于任意路徑下的任意名稱的 Dockerfile。
構(gòu)建上下文是指應(yīng)用文件存放的位置,可能是本地 Docker 主機(jī)上的一個目錄或一個遠(yuǎn)程的 Git 庫。
Dockerfile 中的 FROM 指令用于指定要構(gòu)建的鏡像的基礎(chǔ)鏡像。它通常是 Dockerfile 中的第一條指令。
Dockerfile 中的 RUN 指令用于在鏡像中執(zhí)行命令,這會創(chuàng)建新的鏡像層。每個 RUN 指令創(chuàng)建一個新的鏡像層。
Dockerfile 中的 COPY 指令用于將文件作為一個新的層添加到鏡像中。通常使用 COPY 指令將應(yīng)用代碼賦值到鏡像中。
Dockerfile 中的 EXPOSE 指令用于記錄應(yīng)用所使用的網(wǎng)絡(luò)端口。
Dockerfile 中的 ENTRYPOINT 指令用于指定鏡像以容器方式啟動后默認(rèn)運行的程序。
其他的 Dockerfile 指令還有 LABEL、ENV、ONBUILD、HEALTHCHECK、CMD 等。