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