Dockerfile 常用指令

2021-09-07 17:07:35 字數 1611 閱讀 3110

下面列出了 dockerfile 中最常用的指令,完整列表和說明可參看官方文件。

from

指定 base 映象。

maintainer

設定映象的作者,可以是任意字串。

copy

將檔案從 build context 複製到映象。

copy 支援兩種形式:

copy src dest

copy ["src", "dest"]

注意:src 只能指定 build context 中的檔案或目錄。

add

與 copy 類似,從 build context 複製檔案到映象。不同的是,如果 src 是歸檔檔案(tar, zip, tgz, xz 等),檔案會被自動解壓到 dest。

env

設定環境變數,環境變數可被後面的指令使用。例如:

env my_version 1.3

run apt-get install -y mypackage=$my_version

...expose

指定容器中的程序會監聽某個埠,docker 可以將該埠暴露出來。我們會在容器網路部分詳細討論。

volume

將檔案或目錄宣告為 volume。我們會在容器儲存部分詳細討論。

workdir

為後面的 run, cmd, entrypoint, add 或 copy 指令設定映象中的當前工作目錄。

run

在容器中執行指定的命令。

cmd

容器啟動時執行指定的命令。

dockerfile 中可以有多個 cmd 指令,但只有最後乙個生效。cmd 可以被 docker run 之後的引數替換。

entrypoint

設定容器啟動時執行的命令。

dockerfile 中可以有多個 entrypoint 指令,但只有最後乙個生效。cmd 或 docker run 之後的引數會被當做引數傳遞給 entrypoint。

下面我們來看乙個較為全面的 dockerfile:

注:dockerfile 支援以「#」開頭的注釋。

構建映象:

① 構建前確保 build context 中存在需要的檔案。

② 依次執行 dockerfile 指令,完成構建。

執行容器,驗證映象內容:

① 進入容器,當前目錄即為 workdir。

如果 workdir 不存在,docker 會自動為我們建立。

② workdir 中儲存了我們希望的檔案和目錄:

目錄 bunch:由 add 指令從 build context 複製的歸檔檔案 bunch.tar.gz,已經自動解壓。

檔案 tmpfile1:由 run 指令建立。

檔案 tmpfile2:由 copy 指令從 build context 複製。

③ env 指令定義的環境變數已經生效。

Dockerfile常用指令

from from指令是最重要的乙個並且必須為dockerfile檔案開篇的第乙個非注釋行,用於為映象檔案構建過程指定基礎映象,後續的指令執行於此基礎映象提供的執行環境 這個基礎映象可以是任何可用映象,預設情況下docker build會從本地倉庫找指定的映象檔案,如果不存在就會從docker hu...

Dockerfile的常用指令

dockerfile命令格式 nginx test 映象名稱 映象標籤 docker build t nginx test 功能 cmd指令用於指定乙個容器啟動時要執行的命令。例 這裡我們將 l標誌傳遞給了 bin bash命令。cmd bin bash l 功能 entrypoint與cmd指令類...

Dockerfile 常用指令及使用

指令描述 from 構建新映象是基於哪個映象 maintainer 進行維護者姓名或郵箱位址 run構建映象時執行的shell命令 env設定環境變數 user 為run cmd和entrypoint執行命令指定執行使用者 expose 宣告容器執行的服務埠 healthcheck 容器中伺服器健康...