dockerfile建立鏡像(二)

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

相關文章
相關標籤/搜索