Dockerfile自動建立映象

2021-10-18 02:31:04 字數 2222 閱讀 9840

通過dockerfile檔案,可以幫助我們自動建立映象

1.from

from 指令用於設定在新映像建立過程期間將使用的容器映像。

格式:from 

示例:from nginx

from microsoft/dotnet:2.1-aspnetcore-runtime

2.run

run 指令指定將要執行並捕獲到新容器映像中的命令。 這些命令包括安裝軟體、建立檔案和目錄,以及建立環境配置等。

格式:run ["", "", ""]

run示例:

run apt-get update

run mkdir -p /usr/src/redis

run apt-get update && apt-get install -y libgdiplus

run ["apt-get","install","-y","nginx"]

注意:每乙個指令都會建立一層,並構成新的映象。當執行多個指令時,會產生一些非常臃腫、非常多層的映象,不僅僅增加了構建部署的時間,也很容易出錯。因此,在很多情況下,我們可以合併指令並執行,例如:run apt-get update && apt-get install -y libgdiplus。在命令過多時,一定要注意格式,比如換行、縮排、注釋等,會讓維護、排障更為容易,這是乙個比較好的習慣。使用換行符時,可能會遇到一些問題,具體可以參閱下節的轉義字元。

3.copy

copy 指令將檔案和目錄複製到容器的檔案系統。檔案和目錄需位於相對於 dockerfile 的路徑中。

格式:copy

如果源或目標包含空格,請將路徑括在方括號和雙引號中。

copy ["", ""]

示例:copy . .

copy nginx.conf /etc/nginx/nginx.conf

copy . /usr/share/nginx/html

copy hom* /mydir/

4.add

add 指令與 copy 指令非常類似,但它包含更多功能。除了將檔案從主機複製到容器映像,add 指令還可以使用 url 規範從遠端位置複製檔案。

格式:add

示例:add  /temp/python-3.5.1.exe

5.workdir

workdir 指令用於為其他 dockerfile 指令(如 run、cmd)設定乙個工作目錄,並且還設定用於執行容器映像例項的工作目錄。

格式:workdir

示例:6.cmd

cmd指令用於設定部署容器映像的例項時要執行的預設命令。例如,如果該容器將承載 nginx web 伺服器,則 cmd 可能包括用於啟動web伺服器的指令,如 nginx.exe。 如果 dockerfile 中指定了多個cmd 指令,只會計算最後乙個指令。

格式:cmd ["cmd

示例:cmd ["c:\\apache24\\bin\\httpd.exe", "-w"]

配置容器啟動後執行的命令,並且不可被 docker run 提供的引數覆蓋。每個 dockerfile 中只能有乙個entrypoint,當指定多個時,只有最後乙個起效。

格式:entrypoint ["", ""]

示例:entrypoint ["dotnet", "magicodes.admin.web.host.dll"]

8.env

env命令用於設定環境變數。這些變數以」key=value」的形式存在,並可以在容器內被指令碼或者程式呼叫。這個機制給在容器中執行應用帶來了極大的便利。

格式:env==...

示例:env version=1.0 debug=on \

name="magicodes"

9.expose

expose用來指定埠,使容器內的應用可以通過埠和外界互動。

格式:expose

示例:expose 80

說了這麼多,我們可以用下圖來一言以蔽之:

使用Dockerfile構建nginx映象

dockerfile的指令 from 指定基礎映象 from是必備的指令,並且必須為第一條指令 run 用來執行命令列命令。其基本格式 shell格式 run 命令 輸入在bash環境中的命令即可,乙個dockerfile允許使用run不得超過127層,所以,使用一次run,使用 換行,使用 執行下...

Dockerfile編譯安裝nginx映象

root localhost mkdir nginx root localhost cd nginx root localhost nginx touch dockerfile root localhost nginx vim dockerfile from daocloud.io library ...

Dockerfile構建映象,映象入倉庫,映象啟動

dockerfile是由一系列命令和引數構成的指令碼,這些命令應用於基礎映象並最終建立乙個新的映象。它們簡化了從頭到尾的流程並極大的簡化了部署工作。dockerfile從from命令開始,緊接著跟隨者各種方法,命令和引數。其產出為乙個新的可以用於建立容器的映象。dockerfile示例 form u...