Docker Dockerfile基礎知識

2022-02-14 09:22:42 字數 2049 閱讀 2611

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

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

執行一條指令並對容器做出修改

執行類似docker commit的操作提交乙個新的映象

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

執行dockerfile中的下一條指令直到所有指令都執行完成

dockerfile面向開發,docker映象成為交付標準,docker容器涉及部署與運維。三者合力充當docker體系的基石。

from:基礎映象,當前新的映象是基與哪個映象

maintainer:映象維護者的姓名和郵箱位址

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

expose:當前容器對外暴露出的埠

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

env:用來構建映象過程中設定環境變數

add:將宿主機目錄下的檔案拷貝進映象,且會自動處理url和解壓tar壓縮包

copy:拷貝檔案和目錄到映象中(copy src dest || copy ["src","dest"])

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

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

解釋:執行命令 docker run -it -p 8080:8080 tomcat ls -l 後,ls -l 會替換tomcat中的dockerfile最後的cmd ["catalina.sh" "run"],變成cmd ls -l,這樣tomcat就會啟動失敗。如下圖所示:

entrypoint:指定乙個容器啟動要執行的命令,docker run之後的引數會被當做引數傳遞給entrypoint,之後形成新的命令組合

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

label:語法:label ===...

label 指令將元資料新增到映象。label 是鍵值對。要在 label 值中包含空格,請使用引號和反斜槓,就像在命令列解析中一樣。

docker hub中99%的映象都是通過在base映象中安裝和配置需要的軟體構建出來的。

from scratch

add centos-8-x86_64.tar.xz /

label org.label-schema.schema-version="1.0" org.label-schema.name="centos base image" org.label-schema.vendor="centos" org.label-schema.license="gplv2" org.label-schema.build-date="20200809"

cmd ["/bin/bash"]

from centos

maintainer wjenv mypath /opt

workdir $mypath

run yum -y install vim

run yum -y install net-tools

expose 10000

cmd /bin/bash

構建命令:

docker build -t 映象名:tag .
執行剛才自定義的dockerfile:

檢視剛才建立的映象的建立歷史:

Docker Dockerfile 基本結構詳解

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

docker Dockerfile映象生成

dockerfile就是用來構建映象的檔案,有一系列命令和引數組成,docker會根據裡面的內容進行映象的build 1.手動新建乙個dockerfile檔案,必須符合file規範 2.然後新增自己的內容 3.有了這個檔案之後,就可以docker build映象,然後docker run容器 會生成...

Docker Dockerfile保留關鍵字

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