Dockerfile檔案說明

2022-03-01 19:07:19 字數 2975 閱讀 5641

此檔案用於docker映象檔案的製作

dockerfile檔案由行命令組成,以#開頭注釋行

一般分為四部分,基礎映象資訊、維護者資訊、映象操作指令和容器啟動執行指令。

例如

#depending on the operating system of the host machines(s) that will build or run the containers, the image specified in

開始指明基於的映象說明,下面推薦說明維護者資訊,後面是映象操作指令,最後是cmd指令,用於指定執行容器是操作的命令。

form

格式為 from 或者 :

第一條指令必須為form指令,並且如果同乙個dockerfile中建立多個映象時,可以使用多個form指令(每個映象一次)

maintainer

格式為 maintainer ,指定維護者資訊

run格式為 run 或者 run ["executable","param1","param2"]

前者在shell終端中執行命令,後者則使用exec執行。

指定使用其他終端可以通過第二種方式實現。

每條run指令在當前映象基礎上執行指定命令,並提交為新的映象。當命令較長時候可以使用 \ 換行。

cmd支援三種格式:

每個dockerfile只能有一條cmd命令,如果指定多條命令,則只有最後一條會被執行

如果使用者啟動容器的時候指定了執行的命令,則會覆蓋cmd指定命令

expose

指定暴漏的埠號,格式為 expose [... ]

-p ,自動分配隨機埠

-p ,指定埠

env格式為 env 。指定乙個環境變數,後續run指令會用到,並在容器執行時保持。

例如:

env pg_major 9.3

add格式為 add

該命令複製指定的 到容器中 ,其中 可以是dockerfile所在目錄的乙個相對的路徑;也可以是url;還可以是tar檔案(自動解壓為目錄)

copy

格式為 copy

複製本地的 (為dockerfile所在的相對目錄) 到 到容器中的

entrypoint 

兩種格式:

配置容器啟動後執行的命令,且不可被docker run 提供的引數所覆蓋

每個dockerfile中只能有乙個 entrypoint,當指定多個時只對最後乙個有效

volume

格式為 volume ["/data"]

建立乙個可以從本地主機或其他容器掛載的掛載點,一般用來存放資料庫和需要保持的資料庫

user

格式為 user daemon

指定執行容器時的使用者名稱和uid,後續的 run 也會指定使用者

workdir 

格式為 workdir /path/to/workdir

為後續的 run、cmd、entrypoint 的指令配置工作目錄

可以使用多個 workdir 指令,後續指令如果是相對路徑,則會基於之前的命令指定的路徑

e.g.最終路徑為 /a/b/c ,可以簡單理解為多次cd指令

workdir /a

workdir b

workdir c

run pwd

onbuild

格式為 onbuild [instruction]

配置當前所建立的映象作為其他新建立映象的基礎映象時,所執行的操作指令

e.g.dockerfile使用如下的內容建立映象 image-a

[...]

[...]

如果基於image-a建立新的映象時候,新dockerfile中使用 form image-a 指定基礎映象時,會自動執行 onbuild的指令內容,等價於在後面新增了兩條指令

from image-a 

#automatically run the following

DockerFile命令說明

映象的構建檔案 通過build構建成新的映象 如 將myfile檔案構建成新映象 from centos cmd echo run success cmd bin bashdocker build f myfile.txt t lwx mycentos 注意 dockerfile的執行流程 1 do...

Dockerfile檔案詳解

一 dockerfile檔案 二 配置檔案詳解 1.from centos 我們的docker是基於哪個基礎映象的 我們的工作目錄 3.copy metadata metadata 將本地的專案拷貝到docker內部 4,run命令 在docker內部執行一下命令,可以是安裝軟體,新建資料夾等操作 ...

Dockerfile檔案用法

場景 根據業務需求以及個人使用習慣,大部分執行的容器使用的映象,均需要自己去編譯映象。from 基礎映象 maintainer 維護者的記錄資訊 run 執行shell命令,盡量執行在同一映象層,減少構建映象層數 add 複製檔案指令。它有兩個引數和。該命令將複製指定的 到容器中的 其中 可以是do...