dockerfile的指令:
from:
指定基礎映象(from是必備的指令,並且必須為第一條指令)。run:
用來執行命令列命令。其基本格式:shell格式:
run 《命令》 ,輸入在bash環境中的命令即可,乙個dockerfile允許使用run不得超過127層,所以,使用一次run,exec格式:使用 『 \ 』 換行,使用『 && 』執行下一條命令。一般使用此種格式;
run <「可執行檔案」, 「引數1」, 「引數2」>,此種方式像是函式呼叫中的格式;copy:
複製檔案。 其基本格式:add:格式1:copy 《源路徑》…《目標路徑》
格式2:copy [「《源路徑1>」,…"《目標路徑》"]
更高階的複製檔案,在copy的基礎上增加了一些功能,如果複製的是壓縮包的話,會直接解壓,而不需要在使用run解壓;cmd:
容器啟動命令。其基本格式:entrypoint:shell格式: cmd 《命令》
exec格式: cmd [「可執行檔案」, 「引數1」, 「引數2」…]
引數列**式: cmd [「引數1」, 「引數2」…],在指定了entrypoint指令後,用cmd指定具體的引數
入口點。其基本格式分為exec和shell,env:entrypoint的目的和cmd一樣,都是在指定容器啟動程式及引數。entrypoint在執行中可以替代,不過比cmd繁瑣,需要通過docker
run 的引數–entrypoint
來指定。當指定了entrypoint後,cmd的含義就發生了改變,不在是直接執行其命令,而是將cmd的內容作為引數傳遞給entrypoint指令。其執行時就變成了:
「」
設定環境變數。(都可以使用這裡使用的變數)其基本格式:arg:格式1:env
格式2:env = =…
構建引數。構建引數和env的效果一樣,都是設定環境變數,所不同的是arg所構建的環境變數在將來容器執行時是不存在的。其基本格式:volume:格式1: arg 《引數名》 [=《預設值》]
格式2: 該預設值可以在構建命令 docker build 中用 --build-arg 《引數名》=《值》 來覆蓋
定義匿名卷。 其基本格式:expose:格式1: volume ["《路徑1>", 「《路徑2>」…]
格式2: volume 《路徑》
暴露埠。expose指令是宣告執行時容器所提供的埠,在啟動容器時不會在因為這個宣告而開啟埠。 其基本格式:workdir:格式1: expose 《埠1> [《埠2>…]
指定工作目錄。其基本格式:user:格式1: workdir 《工作目錄路徑》
指定當前使用者。user是幫助你切換到指定使用者。 其基本格式:healtcheck:格式1: user 《使用者名稱》
健康檢查,判斷容器的狀態是否正常。 其基本格式:格式1: healtcheck [選項] cmd 《命令》 :設定檢查容器健康狀況的命令
格式2: healtcheck none: 如果基礎映象有健康檢查指令,使用此格式可以遮蔽掉其健
在dockerfile本目錄下建立entrypoint.sh
# ls
data dockerfile entrypoint.sh
# cat dockefile
from centos:jc # 所用映象
開始打包映象,-t 指定乙個標籤給打包出來的映象,./ 就是dockerfile所在
使用Dockerfile構建容器
通過dockerfile構建docker容器,可以只依賴基礎映象,此文以ubuntu作為基礎映象。touch dockerfile from ubuntu 14.04 maintainer tony env refreshed at 2017 05 08run apt get update run ...
使用dockerfile 構建映象
新建資料夾workdir,在資料夾中新建dockerfile檔案 此時workdir即為構建上下文,在構建映象時,docker會將構建上下文和上下文中的目錄和檔案 上傳到 docker deamon 中。要包含到映象中的檔案要放到上下文中,之後dockerfile中對檔案的複製拷貝是對上下文中的檔案...
dockerfile構建映象
尋找官方映象的dockerfile 在hub.docker.com 中,輸入映象的名字,往下拉就能找到跳轉到dockerfile的鏈結。下圖是centos的dockerfile from scratch maintainer the centos project add c68 docker.tar...