指令的一般格式為instruction arguments
,指令包括from
、maintainer
、run
等。
格式為from
或from :
。
第一條指令必須為from
指令。並且,如果在同乙個dockerfile中建立多個映象時,可以使用多個from
指令(每個映象一次)。
格式為maintainer
,指定維護者資訊。
格式為run
或run ["executable", "param1", "param2"]
。
前者將在shell終端中執行命令,即/bin/sh -c
;後者則使用exec
執行。指定使用其它終端可以通過第二種方式實現,例如run ["/bin/bash", "-c", "echo hello"]
。
每條run
指令將在當前映象基礎上執行指定命令,並提交為新的映象。當命令較長時可以使用\
來換行。
支援三種格式
指定啟動容器時執行的命令,每個dockerfile只能有一條cmd
命令。如果指定了多條命令,只有最後一條會被執行。
如果使用者啟動容器時候指定了執行的命令,則會覆蓋掉cmd
指定的命令。
格式為expose [...]
。
告訴docker服務端容器暴露的埠號,供互聯系統使用。
格式為env
。 指定乙個環境變數,會被後續run
指令使用,並在容器執行時保持。
例如
env pg_major 9.3格式為
add
。該命令將複製指定的
到容器中的
。 其中
可以是dockerfile所在目錄的乙個相對路徑;也可以是乙個url;還可以是乙個tar檔案(自動解壓為目錄)。則。
格式為
copy
。複製本地主機的
(為dockerfile所在目錄的相對路徑)到容器中的
。
當使用本地目錄為源目錄時,推薦使用
copy
。兩種格式:
配置容器啟動後執行的命令,並且不可被
docker run
提供的引數覆蓋。每個dockerfile中只能有乙個
entrypoint
,當指定多個時,只有最後乙個起效。格式為
volume ["/data"]
。建立乙個可以從本地主機或其他容器掛載的掛載點,一般用來存放資料庫和需要保持的資料等。
格式為
user daemon
。指定執行容器時的使用者名稱或uid,後續的
run
也會使用指定使用者。當服務不需要管理員許可權時,可以通過該命令指定執行使用者。並且可以在之前建立所需要的使用者,例如:
run groupadd -r postgres && useradd -r -g postgres postgres
。要臨時獲取管理員許可權可以使用gosu
,而不推薦sudo
。格式為
workdir /path/to/workdir
。為後續的
run
、cmd
、entrypoint
指令配置工作目錄。可以使用多個
workdir
指令,後續命令如果引數是相對路徑,則會基於之前命令指定的路徑。例如workdir /aworkdir b
workdir c
run
pwd
則最終路徑為
/a/b/c
。格式為
onbuild [instruction]
。配置當所建立的映象作為其它新建立映象的基礎映象時,所執行的操作指令。
例如,dockerfile使用如下的內容建立了映象
image-a
。[...][...]
如果基於a建立新的映象時,新的dockerfile中使用
from image-a
指定基礎映象時,會自動執行onbuild
指令內容,等價於在後面新增了兩條指令。from image-a
#automatically run the following
使用
onbuild
指令的映象,推薦在標籤中註明,例如ruby:1.9-onbuild
。Dockerfile指令總結
指令的一般格式為instruction arguments,指令包括from maintainer run等。格式為from或from 第一條指令必須為from指令。並且,如果在同乙個dockerfile中建立多個映象時,可以使用多個from指令 每個映象一次 格式為maintainer,指定維護者...
Dockerfile 指令詳解
一種通過commit的方式 把做了一系列操作的容器關閉,然後利用docker的commit指令 dockercommit 容器id 映象名 tag。然後dockerpush到映象倉庫。別人pull下來的再次啟動的時候,就是你當前的操作的形態。另一種是通過dockerfile構建的方式 把操作的步驟通...
Dockerfile 常用指令
下面列出了 dockerfile 中最常用的指令,完整列表和說明可參看官方文件。from 指定 base 映象。maintainer 設定映象的作者,可以是任意字串。copy 將檔案從 build context 複製到映象。copy 支援兩種形式 copy src dest copy src de...