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

2021-10-06 21:10:34 字數 2419 閱讀 4405

1,什麼是dockerfile

2,dockerfile構建過程解析

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

1,dockerfile是用來構建docker映象的構建檔案,是由一系列的命令和引數構成的指令碼

2,dokcerfile的構建步驟

編寫dokcerfile檔案

docker build 生成新的映象

docker run 執行映象

3,以centos的映象為例來說明

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容器,容器是直接提供服務的。

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

時執行命令,父映象在被子映象繼承後觸發父映象的

python 基類是什麼 python之抽象基類

python之抽象基類 抽象基類,在這個類中定義一些方法,所有繼承這個類的類必須實現這個方法,並且這個類不能被例項化,使用抽象基類的情況 1.某些情況下希望判斷某個物件的型別 2.強制子類必須實現某些方法 在python實現抽象基類在abc和collections.abc中 from abc imp...

python中基類是什麼意思

1 說明 繼承就是讓類和類之間產生父子關係,子類可以擁有父類的靜態屬性和方法。這裡的父類指的是被繼承的類,也叫做基類 子類指的是繼承其它類的類,也叫做派生類 基於至少兩個類之間才有繼承,比如b類繼承a類,那麼a就是b的父類 又叫超類 基類 2 基類的檢視 python 為所有類都提供了乙個 base...

0 是什麼及拓展

一.0 是乙個字元,要與字元 0 數字 0區別開 1.int 0 0 ascll碼值 對應 null 空字元,通常用於字串結束位標記結束,列印在介面上為 1個字元的空白,與空格相同 注 如果這個空字元為字串結束符,則系統忽略,不列印 2.int 0 48 二.與空格的區別 1.空格字元 指鍵盤上長長...