ENTRYPOINT 兩種格式: ENTRYPOINT [「executable」, 「param1」, 「param2」] ENTRYPOINT command param1 param2 (shell中執行)。 在運行時,能夠被--entrypoint參數覆蓋,如docker run --entrypoint 每一個Dockerfile中只能有一個 ENTRYPOINT ,當指定多個時,只有最後一個起效。
VOLUME 格式爲 VOLUME [「/data」] 。 建立一個能夠從本地主機或其餘容器掛載的掛載點,通常用來存放數據庫和須要保持的數據等。
USER
格式爲 USER daemon 。
指定運行容器時的用戶名或UID,後續的 RUN 也會使用指定用戶。
當服務不須要管理員權限時,能夠經過該命令指定運行用戶。而且能夠在以前建立所須要的用戶,例如: RUN groupadd -r postgres && useradd -r -g postgres postgres 。要臨時獲取管理員權限能夠使用 gosu ,而不推薦 sudo 。
WORKDIR 格式爲 WORKDIR /path/to/workdir 。 爲後續的 RUN 、 CMD 、 ENTRYPOINT 指令配置工做目錄。 能夠使用多個 WORKDIR 指令,後續命令若是參數是相對路徑,則會基於以前命令指定的路徑。例如 WORKDIR /a WORKDIR b WORKDIR c RUN pwd 則最終路徑爲 /a/b/c 。
ONBUILD 格式爲 ONBUILD [INSTRUCTION] 。 配置當所建立的鏡像做爲其它新建立鏡像的基礎鏡像時,所執行的操做指令。 例如,Dockerfile使用以下的內容建立了鏡像 image-A 。 […] ONBUILD ADD . /app/src ONBUILD RUN /usr/local/bin/Python-build –dir /app/src […] 若是基於A建立新的鏡像時,新的Dockerfile中使用 FROM image-A 指定基礎鏡像時,會自動執行 ONBUILD 指令內容,等價於在後面添加了兩條指令。FROM image-A #Automatically run the following ADD . /app/src RUN /usr/local/bin/python-build --dir /app/src 使用 ONBUILD 指令的鏡像,推薦在標籤中註明,例如 ruby:1.9-onbuild
經過Docker Build 建立鏡像。
命令讀取指定路徑下(包括子目錄)全部的Dockefile,而且把目錄下全部內容發送到服務端,由服務端建立鏡像。另外能夠經過建立.dockerignore文件(每一行添加一個匹配模式)讓docker忽略指定目錄或者文件python
格式爲Docker Build [選項] 路徑
須要制定標籤信息,能夠使用-t選項
例如:Dockerfile路徑爲 /tmp/docker_build/,生成鏡像的標籤爲build_repo/my_images
$dudo docker build -t build_repo/my_images -f /tmp/docker_build/docker