dockerfile作用:
dockerfile 是乙個用來構建映象的文字檔案,文字內容包含了一條條構建映象所需的指令和說明,幫我們把應用打包成映象,這樣我們就可以在容器中執行這個應用了
dockerfile檔案中的指令
from:定製的映象都是基於 from 的映象
run:用於執行後面跟著的命令列命令有以下倆種格式:
**shell 格式:**
run 《命令列命令》
《命令列命令》 等同於,在終端操作的 shell 命令。
**exec 格式:**
run [
"可執行檔案", "引數1", "引數2"
] 例如:
run [
"./test.php", "dev", "offline"
] 等價於 run ./test.php dev offline
cmd:類似於 run 指令,用於執行程式,但二者執行的時間點不同:
cmd在docker run 時執行。
run 是在 docker build。
作用:為啟動的容器指定預設要執行的程式,程式執行結束,容器也就結束。cmd 指令指定的程式可被 docker run 命令列引數中指定要執行的程式所覆蓋。
注意:如果 dockerfile 中如果存在多個 cmd 指令,僅最後乙個生效。
expose:僅僅只是宣告埠。
作用:
幫助映象使用者理解這個映象服務的守護埠,以方便配置對映。
在執行時使用隨機埠對映時,也就是 docker run -p 時,會自動隨機對映 expose 的埠。
格式:expose 《埠1>
[《埠2>
...]
workdir:指定工作目錄。用 workdir 指定的工作目錄,會在構建映象的每一層中都存在。(workdir 指定的工作目錄,必須是提前建立好的)。
docker build 構建映象過程中的,每乙個 run 命令都是新建的一層。只有通過 workdir 建立的目錄才會一直存在。
格式:workdir 《工作目錄路徑》
copy:複製指令,從上下文目錄中複製檔案或者目錄到容器裡指定路徑。
格式:
copy 《主機資源路徑》
... 《映象容器路徑》
功能也類似,不同之處如下:
add 的優點:在執行 《原始檔》 為 tar 壓縮檔案的話,壓縮格式為 gzip, bzip2 以及 xz 的情況下,會自動複製並解壓到 《目標路徑》。
add 的缺點:在不解壓的前提下,無法複製 tar 壓縮檔案。會令映象構建快取失效,從而可能會令映象構建變得比較緩慢。具體是否使用,可以根據是否需要自動解壓來決定。
Dockerfile自定義映象
建立自定義映象就需要建立乙個dockerfiler,如下為dockerfile的語言 from 指定當前自定義映象依賴的環境 copy 將相對路徑下的內容複製到自定義映象中 workdir 宣告映象的預設工作目錄 run 執行的命令,可以編寫多個 cmd 需要執行的命令 在workdir下執行的,c...
使用dockerfile自定義映象
目前我會的docker執行方式就是簡單粗暴的docker pull下來別人的基礎環境,然後把自己的專案丟進拉下來的基礎環境執行,最終儲存退出,打包成自己的映象push到自己的docker hub中以供專案復用 有朋友問我是不是懂docker,我覺得略懂,然後問我如何寫dockerfile,我也是一臉...
Docker 映象 自定義映象
1 自定義mycentos目的使我們自己的映象具備如下 登陸後的預設路徑 vim編輯器 檢視網路配置ifconfig支援 2 準備編寫dockerfile檔案 mkdir mydockerfile vim dockerfile file首字母要小寫,不然報錯dockerfile內容如下from ce...