Dockerfile常用指令

2021-10-20 18:24:14 字數 1559 閱讀 9891

from

from指令是最重要的乙個並且必須為dockerfile檔案開篇的第乙個非注釋行,用於為映象檔案構建過程指定基礎映象,後續的指令執行於此基礎映象提供的執行環境

這個基礎映象可以是任何可用映象,預設情況下docker build會從本地倉庫找指定的映象檔案,如果不存在就會從docker hub上拉取

語法:

from from :from @
copy

用於從宿主機複製檔案到建立的新映象檔案

語法:

copy ...copy ["",...""]

# :要複製的原始檔或者目錄,可以使用萬用字元

# :目標路徑,即正在建立的image的檔案系統路徑;建議使用絕對路徑,否則copy指令則以workdir為

其起始路徑

注意:如果你的路徑中有空白字元,通常會使用第二種格式

規則:必須是build上下文中的路徑,不能是其父目錄中的檔案

如果是目錄,則其內部檔案或子目錄會被遞迴複製,但目錄自身不會被複製

如果指定了多個,或在中使用了萬用字元,則必須是乙個目錄,則必須以/符號結尾

如果不存在,將會被自動建立,包括其父目錄路徑

add基本用法和copy指令一樣,add支援使用tar檔案和url路徑

語法:

add ...add ["",...""]
規則:

expose

用於給容器開啟指定要監聽的埠以實現和外部通訊

語法:

expose [/] [[/]...]
用於指定傳輸層協議,可以是tcp或者udp,預設是tcp協議

expose可以一次性指定多個埠,例如: expose 80/tcp 80/udp

env用來給映象定義所需要的環境變數,並且可以被dockerfile檔案中位於其後的其他指令(如env、add、copy等)所呼叫,呼叫格式:$variable_name或者$

語法:

env env =...
第一種格式中, 之後的所有內容都會被視為的組成部分,所以一次只能設定乙個變數

第二種格式可以一次設定多個變數,如果當中有空格可以使用\進行轉義或者對加引號進行標識;另外\也可以用來續行

arg用法同env

語法:

arg [=]
指定乙個變數,可以在docker build建立映象的時候,使用--build-arg =來指定引數

run用來指定docker build過程中執行指定的命令

語法:

run run ["","",""]
第一種格式裡面的引數一般是乙個shell命令,以/bin/sh -c 來執行它

第二種格式中的引數是乙個json格式的陣列,當中是要執行的命令,後面是傳遞給命令的選項或者引數;但是這種格式不會用/bin/sh -c 來發起,所以常見的shell操作像變數替換和萬用字元替換不會進行;如果你執行的命令依賴shell特性,可以替換成型別以下的格式

run ["/bin/bash","-c","",""]

Dockerfile 常用指令

下面列出了 dockerfile 中最常用的指令,完整列表和說明可參看官方文件。from 指定 base 映象。maintainer 設定映象的作者,可以是任意字串。copy 將檔案從 build context 複製到映象。copy 支援兩種形式 copy src dest copy src de...

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 容器中伺服器健康...