格式:FROM<image>或FROM<image>:<tag>
解釋:FROM是Dockerfile裏的第一條指令(必須是),後面跟有效的鏡像名(若是該鏡像你的本地倉庫沒有則會從遠處倉庫Pull取)。而後後面的其它指令FROM的鏡像中執行python
格式:MAINTAINER <name>
解釋:指定維護者信息docker
格式:RUN <command>或 RUN["executable", "param1", "param2"]
解釋:運行命令,能夠使用\來換行,也能夠用上面的數組方式shell
格式: CMD ["executable","param1","param2"] 使用 exec 執行,推薦方式; CMD command param1 param2 在 /bin/sh 中執行,提供給須要交互的應用; CMD ["param1","param2"] 提供給ENTRYPOINT的默認參數;
解釋:CMD指定容器啓動是執行的命令,每一個Dockerfile只能有一條CMD命令,若是指定了多條,只有最後一條會被執行。若是你在啓動容器的時候也指定的命令,那麼會覆蓋Dockerfile構建的鏡像裏面的CMD命令數組
格式: ENTRYPOINT ["executable", "param1","param2"] ENTRYPOINT command param1 param2(shell中執行)
解釋:和CMD相似都是配置容器啓動後執行的命令,而且不可被 docker run 提供的參數覆蓋 每一個 Dockerfile 中只能有一個 ENTRYPOINT,當指定多個時,只有最後一個起效,ENTRYPOINT沒有CMD的可替換特性,也就是你啓動容器的時候增長運行的命令不會覆蓋ENTRYPOINT指定的命令。 因此生產實踐中咱們能夠同時使用ENTRYPOINT和CMDui
格式:USER daemon
解釋: 指定運行容器時的用戶名和UID,後續的RUN指令也會使用這裏指定的用戶code
格式:EXPOSE<port> [<port>...]
解釋:設置Docker容器內部暴露的端口號,若是須要外部訪問,還須要啓動容器時增長-p或者-P參數進行分配。table
格式:ENV ENV =<value> ...
解釋:設置環境變量,能夠在RUN以前使用,而後RUN命令時調用,容器啓動時這些環境變量都會被指定class
格式: ADD <src>... <dest> ADD ["",... ""]
解釋:將指定的複製到容器文件系統中的 全部拷貝到container中的文件和文件夾權限爲0755,uid和gid爲0 若是文件是可識別的壓縮格式,則docker會幫忙解壓縮容器
格式:VOLUME ["/data"]
解釋:能夠將本地文件夾或者其餘container的文件夾掛載到container中變量
格式:WORKDIR/path/to/workdir
解釋:切換目錄,爲後續的RUN、CMD、ENTRYPOINT 指令配置工做目錄 能夠屢次切換,當多個 WORKDIR連續時,按照相對路徑去尋找目錄
ONBUILD 指定的命令在構建鏡像時並不執行,而是在它的子鏡像中執行
格式:ARG<name>[=<default value>]
解釋:ARG指定了一個變量在docker build的時候使用,能夠使用--build-arg =來指定參數的值,不過若是構建的時候不指定就會報錯