⒈是什麼?docker
DockerFile是用來構建Docker鏡像的構建文件,是由一系列命令和參數構成的腳本文件。運維
⒉步驟ui
①手動編寫一個符合規範的DockerFile文件(編寫)設計
②使用docker build執行這個文件生成自定義鏡像(構建)3d
③docker run(執行)blog
*繼承
DockerFile =》 軟件原材料開發
Docker鏡像 =》 軟件交付品部署
Docker容器 =》 軟件運行態it
DockerFile面向開發,Docker鏡像成爲交付標準,Docker容器則設計部署與運維,三者缺一不可,協力充當Docker體系的基石。
⒊Docker執行DockerFile的大體流程
①Docker從基礎鏡像運行一個容器
②執行一條執行並對容器做出修改
③執行相似docker commit的操做提交一個新的鏡像層
④Docker再基於剛提交的鏡像運行一個新容器
⑤執行DockerFile中的下一條執行直到全部指令所有執行完成
⒋指令
⒈FROM
基礎鏡像,當前新鏡像是基於那個鏡像的。
⒉MAINTAINER
鏡像維護者的姓名和郵箱地址
⒊RUN
容器構建時須要運行的命令
⒋EXPOSE
當前容器對外暴漏的端口號
⒌WORKDIR
指定在建立容器後,終端默認登錄進來的工做目錄
⒍ENV
用來在構建鏡像過程當中設置環境變量
⒎ADD
將宿主機目錄下的文件拷貝進鏡像且ADD指令會自動處理URL和解壓tar壓縮包
⒏COPY
相似ADD指令,拷貝文件和目錄到鏡像中,沒有下一步操做,不會解壓等。
⒐VOLUME
容器數據卷,用於數據保存和持久化工做
⒑CMD
指定一個容器啓動時要運行的命令
DockerFile中能夠有多個CMD指令,但只有最後一個會生效
CMD指令會被docker run以後的參數替換
⒒ENTRYPOINT
指定一個容器啓動時要運行的命令
⒓ONBUILD
當構建一個被繼承的DockerFile時運行命令,父鏡像在被子繼承後父鏡像的ONBUILD指令將被觸發
⒌指令相關
①每條指令必須爲大寫字母且後面至少跟隨一個參數
②指令按照從上到下,順序執行
③#表示註釋
④每條指令都會建立一個新的鏡像層,並對鏡像進行提交
⒍如何構建?
docker build -f [DockerFile的絕對路徑] -t 鏡像名稱:版本號
⒎Docker父鏡像
Base鏡像(scratch),父鏡像,基鏡像,至關於C#/Java中的Object類,99%的鏡像都是經過Base鏡像構建出來的。