使用 Docker 中的docker image build命令會讀取 Dockerfile,并將應用程序容器化。
Dockerfile 由一行行命令語句組成,并支持以 # 開頭的注釋行。例如:
# Test web-app to use with Pluralsight courses and Docker Deep Dive book
# Linux x64
FROM alpine
LABEL maintainer="[email protected]"
# 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 參數為鏡像打標簽,使用 -f 參數指定 Dockerfile 的路徑和名稱,使用 -f 參數可以指定位于任意路徑下的任意名稱的 Dockerfile。
構建上下文是指應用文件存放的位置,可能是本地 Docker 主機上的一個目錄或一個遠程的 Git 庫。
Dockerfile 中的 FROM 指令用于指定要構建的鏡像的基礎鏡像。它通常是 Dockerfile 中的第一條指令。
Dockerfile 中的 RUN 指令用于在鏡像中執行命令,這會創建新的鏡像層。每個 RUN 指令創建一個新的鏡像層。
Dockerfile 中的 COPY 指令用于將文件作為一個新的層添加到鏡像中。通常使用 COPY 指令將應用代碼賦值到鏡像中。
Dockerfile 中的 EXPOSE 指令用于記錄應用所使用的網絡端口。
Dockerfile 中的 ENTRYPOINT 指令用于指定鏡像以容器方式啟動后默認運行的程序。
其他的 Dockerfile 指令還有 LABEL、ENV、ONBUILD、HEALTHCHECK、CMD 等。