dockerfile自定義映象的使用

2021-10-14 07:54:21 字數 1566 閱讀 5200

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...