003-Dockerfile的格式

Dockerfile詳解

FROM

格式:FROM<image>或FROM<image>:<tag>

解釋:FROM是Dockerfile裏的第一條指令(必須是),後面跟有效的鏡像名(若是該鏡像你的本地倉庫沒有則會從遠處倉庫Pull取)。而後後面的其它指令FROM的鏡像中執行python

MAINTAINER

格式:MAINTAINER <name>

解釋:指定維護者信息docker

RUN

格式:RUN <command>或 RUN["executable", "param1", "param2"]

解釋:運行命令,能夠使用\來換行,也能夠用上面的數組方式shell

CMD

格式:
CMD ["executable","param1","param2"] 使用 exec 執行,推薦方式;
CMD command param1 param2 在 /bin/sh 中執行,提供給須要交互的應用;
CMD ["param1","param2"] 提供給ENTRYPOINT的默認參數;

解釋:CMD指定容器啓動是執行的命令,每一個Dockerfile只能有一條CMD命令,若是指定了多條,只有最後一條會被執行。若是你在啓動容器的時候也指定的命令,那麼會覆蓋Dockerfile構建的鏡像裏面的CMD命令數組

ENTRYPOINT

格式:
   ENTRYPOINT ["executable", "param1","param2"]
   ENTRYPOINT command param1 param2(shell中執行)

解釋:和CMD相似都是配置容器啓動後執行的命令,而且不可被 docker run 提供的參數覆蓋 每一個 Dockerfile 中只能有一個 ENTRYPOINT,當指定多個時,只有最後一個起效,ENTRYPOINT沒有CMD的可替換特性,也就是你啓動容器的時候增長運行的命令不會覆蓋ENTRYPOINT指定的命令。 因此生產實踐中咱們能夠同時使用ENTRYPOINT和CMDui

USER

格式:USER daemon

解釋: 指定運行容器時的用戶名和UID,後續的RUN指令也會使用這裏指定的用戶code

EXPOSE

格式:EXPOSE<port> [<port>...]

解釋:設置Docker容器內部暴露的端口號,若是須要外部訪問,還須要啓動容器時增長-p或者-P參數進行分配。table

ENV

格式:ENV 
ENV =<value> ...

解釋:設置環境變量,能夠在RUN以前使用,而後RUN命令時調用,容器啓動時這些環境變量都會被指定class

ADD

格式:
ADD <src>... <dest>
ADD ["",... ""]

解釋:將指定的複製到容器文件系統中的 全部拷貝到container中的文件和文件夾權限爲0755,uid和gid爲0 若是文件是可識別的壓縮格式,則docker會幫忙解壓縮容器

VOLUME

格式:VOLUME ["/data"]

解釋:能夠將本地文件夾或者其餘container的文件夾掛載到container中變量

WORKDIR

格式:WORKDIR/path/to/workdir

解釋:切換目錄,爲後續的RUN、CMD、ENTRYPOINT 指令配置工做目錄 能夠屢次切換,當多個 WORKDIR連續時,按照相對路徑去尋找目錄

ONBUILD

ONBUILD 指定的命令在構建鏡像時並不執行,而是在它的子鏡像中執行

ARG

格式:ARG<name>[=<default value>]

解釋:ARG指定了一個變量在docker build的時候使用,能夠使用--build-arg =來指定參數的值,不過若是構建的時候不指定就會報錯

相關文章
相關標籤/搜索