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