docker Dockerfile映象生成

2021-09-24 04:49:34 字數 1836 閱讀 3724

dockerfile就是用來構建映象的檔案,有一系列命令和引數組成,docker會根據裡面的內容進行映象的build

1.手動新建乙個dockerfile檔案,必須符合file規範

2.然後新增自己的內容

3.有了這個檔案之後,就可以docker build映象,然後docker run容器 會生成資料卷共享目錄

centos映象的dockerfile檔案

scratch :所有映象檔案的祖先類

maintainer 作者加郵箱

addlabel 標籤,相當於描述

cmd cmd命令

dockerfile解析過程

1.dockerfile的內容

(1)每條保留字指令都必須為大寫字母且後面要跟最少乙個引數

(2)指令從上到下執行

(3)#表示注釋

(4)每條指令都會建立乙個新的映象層,並對映象進行提交

2.docker執行dockerfile的大致流程

(1)docker從基礎映象執行乙個容器

(2)執行一條指令對容器進行修改

(3)執行類似docker commit 的操作提交這次修改

(4)docker再基於剛提交的映象執行乙個新容器

(5)執行dockerfile中的嚇一條指令,依次迴圈,直到命令執行完成

小結從應用軟體的角度看,dockerfile與docker映象還有docker容器分別代表三個不同的階段

* dockerfile是原材料,製作步驟

* docker映象是軟體的交付品

* docker容器則是軟體的執行態

dockerfile面向開發,docker映象成為交付標準,docker容器則涉及部署和運維,三者缺一不可,合力中檔docker體系的基石

dockerfile保留字指令

from:基礎映象,當前的映象的基礎映象

maintainer 映象的作者和郵箱

run 容器構建時需要執行的指令

expose 當前勇氣對外暴露出的埠

workdir 指定在建立容器後,終端預設登入進來的目錄,乙個落腳點

env 用於定義構建容器時期的環境變數

add 拷貝加解壓縮 強大與copy 在宿主機目錄下的檔案拷貝進映象且add命令會自動處理url和解壓tar壓縮包

copy 類似add拷貝檔案和目錄到映象中,將從構建上下文目錄中《源路徑》的檔案或目錄複製到新的一層映象內的《目標路徑》未知 (1)copy src dest (2)copy ["src","dest"]

volume 容器資料卷,用於資料儲存和持久化工作

cmd 指定乙個容器啟動時執行的命令 可以有多個cmd命令,但是只有最後乙個會生效,cmd 會被docker run 之後的引數替換掉

entrypoint 指定乙個容器啟動時執行的命令 和cmd一樣 但是不會覆蓋最後一條命令,run後面跟的引數會追加到命令裡面,

onbuile 當構建乙個被繼承的dockerfile時執行命令,父映象在被子映象繼承後父映象的onbuild命令會觸發

docker Dockerfile 建立映象

from ubuntu 指定基礎映象 copy 源路徑 目標路徑 copy data mydir add 源路徑 目標路徑 類似copy,tar檔案自動解壓,否則無法複製 env 設定環境變數,全域性 arg 引數名 預設值 設定環境變數,在build時有效 volume 路徑1 路徑2 匿名資料卷...

Docker Dockerfile 基本結構詳解

dockerfike快速建立自定義的docker映象 一 目錄 1.docker典型結構 2.指令介紹 3.建立docker映象 二 結構 dockerfile分為四部分組成 基礎映象信 維護者資訊 映象操作指令和容器啟動時執行指令。例如 第一行必須指令基於的基礎映象 from ubutu 維護者資...

Docker Dockerfile保留關鍵字

from基礎映象,當前新映象是基於哪個映象的。maintainer映象維護者的姓名和郵箱位址 run容器構建時需要執行的命令 expose當前容器對外暴露出的埠號 workdir指定在建立容器後,終端預設登入的進來的工作目錄,落腳點,預設是根目錄 env用來在構建映象過程中設定環境變數 add將宿主...