Dockerfile指令大彙總

2021-08-18 21:18:31 字數 2165 閱讀 4324

一 指令格式

下面對於dockerfile用的一些指令進行簡單的說明。

首先,指令的一般格式為

instruction arguments

有一點很重要,指令必須都是大寫。

二 dockerfile指令介紹

from

格式為from或from:.

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

maintainer

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

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

前者將在shell終端中執行命令,即 /bin/sh -c;

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

workdir

格式為workdir /path/to/workdir。

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

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

workdir /a

workdir b

workdir c

run pwd

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

expose

格式為expose […]。

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

在啟動容器時如果通過-p指定,docker主機會自動分配乙個埠**到指定的容器埠。

env格式為env 。

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

cmd支援三種格式:

1 cmd ["executable","param1","param2"] 使用 exec 執行,推薦方式。

2 cmd command param1 param2 在 /bin/sh 中執行,提供給需要互動的應用。

3 cmd ["param1","param2"] 提供給 entrypoint 的預設引數。

指定啟動容器時執行的命令,每個 dockerfile 只能有一條 cmd 命令。

如果指定了多條命令,只有最後一條會被執行。

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

volume

格式為 volume ["/data"]。

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

這個還是很常用的。

add格式為 add 。

該命令將複製指定的 到容器中的 。

其中 可以是dockerfile所在目錄的乙個相對路徑;也可以是乙個 url ;還可以是乙個 tar 檔案(自動解壓為目錄)。

copy

格式為 copy 。

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

目標路徑不存在時,會自動建立。

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

entrypoint

兩種格式:

entrypoint ["executable", "param1", "param2"]

entrypoint command param1 param2(shell中執行)。

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

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

user

格式為 user daemon 。

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

當服務不需要管理員許可權時,可以通過該命令指定執行使用者。

並且可以在之前建立所需要的使用者,例如:run groupadd -r postgres && useradd -r -g postgres postgres。

要臨時獲取管理員許可權可以使用 gosu,而不推薦 sudo。

onbuild

格式為 onbuild [instruction]。

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

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