blog:https://www.cnblogs.com/Rohn/docker
Dockerfile是一個文本文件,記錄了鏡像構建的全部步驟。shell
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