格式: FROM<image>或FROM<image>:<tag>docker
說明:第一條指令必須爲FROM指令,若是在同一個Dockerfile文件中建立多個鏡像時,可使用多個FROM指令(每一個鏡像一次).shell
格式:數據庫
MAINTAINER <name> ##name爲指定維護者信息服務器
格式:cmd
RUN <command> 或 RUN [「executable」,」param1」,」param2」]table
前者將在shell終端中運行命令,即 /binsh –c ;後者則使用exec執行,指定使用其它終端能夠經過第二種方式實現.容器
RUN <cmd>被看成/bin/sh –c 「cmd」運行基礎
RUN [「executable」,」param1」,…]:Docker把它看成JSON的序列來解析,所以必須用雙引號,並且executable須要完整的路徑。變量
功能:軟件
執行Container時的默認行爲,指定啓動容器時執行的命令,每一個Dockerfile只能有一條CMD命令,若是有多條,只有最後一天會被執行。
格式:
CMD [「executable」,」param1」,」param2」]
CMD command param1 param2 在/bin/sh中執行,提供給須要的支付運用.
CMD [「param1」,」param2」]提供給ENTRYPOINT的默認參數.
格式:EXPOSE <port> [<port> …]
功能:Docker服務器暴露的端口號,供互聯繫統使用,在啓動容器時須要經過 –P,Docker主機會自動分配一個端口轉發到指定的端口.
格式:ENV <key><value> ##類型MAP
功能:指定一個環境變量,會被後續RUN指令使用,並在容器運行時保持.
功能:
複製指定的 <src>到容器中的<dest>.其中<src>能夠是Dockerfile所在的目錄的一個相對路徑,也能夠是一個URL,還能夠是一個tar文件(自動解壓爲目錄).
格式:
ADD <src> <dest>
例子:ADD myApp /var/www
格式: COPY <src> <dest>
複雜本地機器的<src>到容器中的<dest>,注:src爲Dockerfile所在目錄的相對路徑.
格式:
ENTRYPOINT [「executable」,」param1」,」param2」]
ENTRYPOINT command param1 param2 (默認的shell中執行)
功能:
一、 把整個Container變成一個可執行的文件。
二、 鏡像的執行入口
三、 配置容器啓動後執行的命令,而且不能夠被docker run提供的參數覆蓋.
四、 每一個Dockerfile中只有一個ENTRYPOINT,當指定多個事,只有最後一個生效
五、 當定義了ENTRYPOINT之後,CMD只可以做爲參數進行傳遞.
格式:
VOLUME[「/data」]
功能:建立一個能夠從本地主機或其它容器掛載的掛載點,通常用來存放數據庫和須要保持的數據等.注意「/data」是指定的容器中目錄
格式:
USER daemon
功能:
指定運行容器時的用戶名或UID,後續的RUM也會使用指定用戶.當服務不須要管理員權限時,能夠經過該命令指定運行用戶.
格式:
WORKDIR /path/to/workdir
功能:
爲後續的RUN、CMD、ENTRYPOINT指令配置工做目錄.可使用多個WORKDIR指令,後續命令若是參數是相對路徑,則會基於以前命令指定的路徑.
格式:
ONBUILD [INSTRUCTION]
功能:
配置當所建立的鏡像做爲其它新建立鏡像的基礎鏡像時,所執行的操做指令.