DockerFile解析

⒈是什麼?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鏡像構建出來的。

相關文章
相關標籤/搜索