Dockerfile是一個文本文件,記錄了鏡像構建的所有步驟。 ...
目錄
Dockerfile
Dockerfile是一個文本文件,記錄了鏡像構建的所有步驟。
Dockerfile常用指令如下:
# 指定base鏡像
FROM <image>
FROM <image>:<tag>
FROM <image>@<digest>
# 維護者信息
MAINTAINER <name>
# 構建鏡像時執行的命令
RUN <command>
RUN ["executable", "param1", "param2"]
# 將本地文件添加到容器中,tar類型文件會自動解壓(網路壓縮資源不會被解壓),可以訪問網路資源,類似wget
ADD <src>... <dest>
ADD ["<src>",... "<dest>"] # 用於支持包含空格的路徑
# 將文件從build context複製文件到鏡像
COPY <src>... <dest>
COPY ["<src>",... "<dest>"]
# 構建容器後調用,也就是在容器啟動時才進行調用
CMD ["executable","param1","param2"] # 執行可執行文件,優先
CMD ["param1","param2"] # 設置了ENTRYPOINT,則直接調用ENTRYPOINT添加參數
CMD command param1 param2 # 執行shell內部命令
# 配置容器,使其可執行化。配合CMD可省去"application",只使用參數
ENTRYPOINT ["executable", "param1", "param2"] # 可執行文件, 優先
ENTRYPOINT command param1 param2 # shell內部命令
# 為鏡像添加元數據
LABEL <key>=<value> <key>=<value> <key>=<value> ...
# 設置環境變數
ENV <key> <value> # <key>之後的所有內容均會被視為其<value>的組成部分,因此,一次只能設置一個變數
ENV <key>=<value> ... # 可以設置多個變數,每個變數為一個"<key>=<value>"的鍵值對,如果<key>中包含空格,可以使用\來進行轉義,也可以通過""來進行標示;另外,反斜線也可以用於續行
# 指定持久化目錄
VOLUME ["/path/to/dir"]
# 切換工作目錄
WORKDIR /path/to/workdir