Dockerfile指令總結

2022-09-17 14:09:10 字數 2675 閱讀 5981

指令的一般格式為instruction arguments,指令包括frommaintainerrun等。

格式為fromfrom :

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

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

格式為runrun ["executable", "param1", "param2"]

前者將在shell終端中執行命令,即/bin/sh -c;後者則使用exec執行。指定使用其它終端可以通過第二種方式實現,例如run ["/bin/bash", "-c", "echo hello"]

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

支援三種格式

指定啟動容器時執行的命令,每個dockerfile只能有一條cmd命令。如果指定了多條命令,只有最後一條會被執行。

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

格式為expose [...]

告訴docker服務端容器暴露的埠號,供互聯系統使用。

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

例如

env pg_major 9.3

格式為add

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

格式為copy

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

當使用本地目錄為源目錄時,推薦使用copy

兩種格式:

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

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

格式為volume ["/data"]

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

格式為user daemon

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

當服務不需要管理員許可權時,可以通過該命令指定執行使用者。並且可以在之前建立所需要的使用者,例如:run groupadd -r postgres && useradd -r -g postgres postgres。要臨時獲取管理員許可權可以使用gosu,而不推薦sudo

格式為workdir /path/to/workdir

為後續的runcmdentrypoint指令配置工作目錄。

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

workdir /a

workdir b

workdir c

run

pwd

則最終路徑為/a/b/c

格式為onbuild [instruction]

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

例如,dockerfile使用如下的內容建立了映象image-a

[...]

[...]

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

from image-a

#automatically run the following

使用onbuild指令的映象,推薦在標籤中註明,例如ruby:1.9-onbuild

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