Dockerfile是什麼及基本語法(八)

目錄

1,什麼是Dockerfile

2,DockerFile構建過程解析

3,DockerFile體系結構(關鍵字---重點啊)

         總結


1,什麼是Dockerfile

1,Dockerfile是用來構建Docker鏡像的構建文件,是由一系列的命令和參數構成的腳本

2,Dokcerfile的構建步驟

        編寫Dokcerfile文件

        docker build 生成新的鏡像

        docker run 運行鏡像

3,以centos的鏡像爲例來說明 https://hub.docker.com/_/centos

                                       

                                       


2,DockerFile構建過程解析

2.1基礎知識

1,每條保留字指令都必須爲大寫字母后面要跟隨至少一個參數
2,指令從上到下順序執行
3,#表示註釋
4,每條指令都會創建一個新的鏡像層,並對鏡像進行提交

2.2大致流程

1,docker從基礎鏡像運行一個容器
2,執行一條指令並對容器進行修改
3,執行類似於docker commit的操作提交一個新的鏡像
4,docker再基於剛提交的新的鏡像運行一個新的容器
5,執行dockerfile的下一個指令再從執行第2點直到沒有指令

2.3總結

從應用軟件的角度來看,Dockerfile、Docker鏡像與Docker容器分別代表軟件的三個不同階段,

*  Dockerfile是軟件的原材料
*  Docker鏡像是軟件的交付品
*  Docker容器則可以認爲是軟件的運行態。
Dockerfile面向開發,Docker鏡像成爲交付標準,Docker容器則涉及部署與運維,三者缺一不可,合力充當Docker體系的基石。
1 Dockerfile,需要定義一個Dockerfile,Dockerfile定義了進程需要的一切東西。
    Dockerfile涉及的內容包括執行代碼或者是文件、環境變量、依賴包、運行時環境、動態鏈接庫、操作系統的發行版、
    服務進程和內核進程(當應用進程需要和系統服務和內核進程打交道,這時需要考慮如何設計namespace的權限控制)等等;
2 Docker鏡像,在用Dockerfile定義一個文件之後,docker build時會產生一個Docker鏡像,
    當運行 Docker鏡像時,會真正開始提供服務;
3 Docker容器,容器是直接提供服務的。

                                         

 

3DockerFile體系結構(關鍵字---重點啊)

FROM 基礎鏡像,當前新鏡像是基於哪個鏡像的

MAINTAINER  鏡像維護者的姓名和郵箱地址

RUN  容器構建時需要運行的命令

EXPOSE 當前容器對外暴露的端口

WORKDIR 指定在創建容器後,終端默認登陸進來的工作目錄

ENV 用來在構建鏡像過程中設置環境變量

ADD 將宿主機目錄下的文件拷貝進鏡像並且ADD命令會自動處理URL和解壓tar

COPY 類似ADD,拷貝文件和目錄到鏡像中 ,語法COPY src dest  COPY [''src","dest"]

VOLUME 容器數據卷,用於數據保存和持久化工作

CMD 指定一個容器啓動時要運行的命令格式

        shell:  CMD  <命令>

        exec  CMD ['可執行文件',"參數1","參數2"]

        DockerFile中可以有多個CMD指令,但只有最後一個生效,CMD會被docker run之後的參數替換

ENTEYPONT  指定一個容器啓動時要運行的命令

            ENTRYPOINT的目地和CMD一樣,都是在指定容器啓動程序及參數

OBBUILD 當構建一個被繼承的Dockerfile時運行命令,父鏡像在被子鏡像繼承後觸發父鏡像的onbuild

 

總結

                                          

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章