一 指令格式
下面對於dockerfile用的一些指令進行簡單的說明。
首先,指令的一般格式為
instruction arguments
有一點很重要,指令必須都是大寫。
二 dockerfile指令介紹
from
格式為from或from:.
第一條指令必須為from指令,注釋除外。並且,如果在同乙個dockerfile中建立多個映象時,可以使用多個from指令(每個映象一次)。
maintainer
格式為maintainer,指定維護者資訊。
run格式為run或run ["executable", "param1", "param2"]。
前者將在shell終端中執行命令,即 /bin/sh -c;
後者則使用exec執行。指定使用其它終端可以通過第二種方式實現,例如run ["/bin/bash", "-c", "echo hello"]。
workdir
格式為workdir /path/to/workdir。
為後續的run、cmd、entrypoint指令配置工作目錄。
可以使用多個workdir指令,後續命令如果引數是相對路徑,則會基於之前命令指定的路徑。
workdir /a
workdir b
workdir c
run pwd
則最終路徑為 /a/b/c
expose
格式為expose […]。
告訴docker服務端容器暴露的埠號,供互聯系統使用。
在啟動容器時如果通過-p指定,docker主機會自動分配乙個埠**到指定的容器埠。
env格式為env 。
指定乙個環境變數,會被後續run指令使用,並在容器執行時保持。
cmd支援三種格式:
1 cmd ["executable","param1","param2"] 使用 exec 執行,推薦方式。
2 cmd command param1 param2 在 /bin/sh 中執行,提供給需要互動的應用。
3 cmd ["param1","param2"] 提供給 entrypoint 的預設引數。
指定啟動容器時執行的命令,每個 dockerfile 只能有一條 cmd 命令。
如果指定了多條命令,只有最後一條會被執行。
如果使用者啟動容器時候指定了執行的命令,則會覆蓋掉 cmd 指定的命令。
volume
格式為 volume ["/data"]。
建立乙個可以從本地主機或其他容器掛載的掛載點,一般用來存放資料庫和需要保持的資料等。
這個還是很常用的。
add格式為 add 。
該命令將複製指定的 到容器中的 。
其中 可以是dockerfile所在目錄的乙個相對路徑;也可以是乙個 url ;還可以是乙個 tar 檔案(自動解壓為目錄)。
copy
格式為 copy 。
複製本地主機的 (為 dockerfile 所在目錄的相對路徑)到容器中的 。
目標路徑不存在時,會自動建立。
當使用本地目錄為源目錄時,推薦使用 copy 。
entrypoint
兩種格式:
entrypoint ["executable", "param1", "param2"]
entrypoint command param1 param2(shell中執行)。
配置容器啟動後執行的命令,並且不可被 docker run 提供的引數覆蓋。
每個 dockerfile 中只能有乙個 entrypoint,當指定多個時,只有最後乙個生效。
user
格式為 user daemon 。
指定執行容器時的使用者名稱或uid,後續的 run 也會使用指定使用者。
當服務不需要管理員許可權時,可以通過該命令指定執行使用者。
並且可以在之前建立所需要的使用者,例如:run groupadd -r postgres && useradd -r -g postgres postgres。
要臨時獲取管理員許可權可以使用 gosu,而不推薦 sudo。
onbuild
格式為 onbuild [instruction]。
配置當所建立的映象作為其它新建立映象的基礎映象時,所執行的操作指令。
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...