Dockerfile基礎命令

2021-08-30 17:45:36 字數 2302 閱讀 2924

映象的定製實際上就是定製每一層所新增的配置和檔案。

如果可以把每一層修改、安裝、構建、操作的命令都寫入到乙個指令碼,用這個指令碼檔案來構建、定製映象,並且重複利用、映象的構建透明化、體積的優化。那這個指令碼稱之為dockerfile

目前的倉庫映象很難找到乙個滿足專案需求、非常好用的映象,就需要自定義映象

基本指令有13個,指令必須大寫,分別是:

from

maintainer

runcmd

expose

envadd

copy

enterpoint

volume

user

workdir

onbuild

3.1 from

用法:from

說明:dockerfile第乙個指令必須為from

其指定乙個構建映象的基礎源映象,如果本地docker映象沒有則會從公共庫中拉取pull,沒有指定映象的tag則會使用預設的latest標籤tag,可以出現很多次,如果想在同乙個dockerfile中構建多個映象

3.2 maintainer

用法: maintainer

說明:描述映象的建立者名稱和郵箱

3.3 run

用法:run「command」「param1」「param2」「…」

說明: run命令是執行之後會生成乙個新的映象,也可以是映象的分層構建。一句run就是乙個分層,也就相當於乙個版本。run後面的都需要雙引號,不能用單引號,也可以不寫?yes or no.

3.4 cmd

用法:cmd[「command」,「param1」,「paran2」,"…"]

說明:cmd命令在dockerfile中只能出現一次,如果有多次,則只有最後一次生效

3.5 expose

用法:expose port1 port2 …

說明:設定容器對外對映的容器埠號,在docker run -p的時候生效

3.6 env

用法:env

說明:1.env用於定義映象的環境變數,定義環境變數的同事,可以引入已經定義的環境變數

在env指令中,可以直接引用如下環境變數:

home,使用者主目錄

hostname,預設容器的主機名

path,

term,預設xterm

2.由於映象的層次檔案系統,env定義的環境變數在後續層次中才能夠被應用

3.啟動容器後,在容器例項中,可以通過env命令檢視環境變數

3.7 add

用法:add

說明: 複製宿主機本地檔案或者目錄或者遠端檔案,新增到指定容器目錄支援正則。路徑是絕對路徑,不存在自動建立。如果源是乙個目錄只會複製目錄下的內容,目錄本身不會複製。add命令會將複製的壓縮資料夾自動解壓

3.8 copy

用法:copy

說明:src 表示源 宿主機上的源,源代表著檔案或者檔案目錄

dest 表示 容器中的指定檔案

說明:copy除了不能自動解壓,也不能複製網落檔案。其他功能和add相同。

3.9 entryopint

用法:entryopint 「command」 「param1」「…」

說明: 和cmd一樣,唯一的區別是不能被docker run命令的執行命令覆蓋,如果想覆蓋則需要帶上 --entrypoint,如果是多項則最後乙個有效

3.10 volume

用法:volume【「path」】

說明: 在宿主機上建立乙個掛載,掛載到容器的指定路徑,docker run -v命令也能實現掛載,而且更強大。這個命令不能指定宿主機的需要掛載到容器的檔案目錄的路徑,但是docker -v可以,而且docker -v也可以掛載資料容器

3.11 user

用法:user

說明:user指令用於指定容器執行程式的使用者身份,預設是root使用者。在docker run中可以通過 -u選項覆蓋user指令的設定

注意:docker容器中的root使用者密碼是隨機分配的

3.12 workdir

用法:workdir path

說明:為run、copy、entrypoint指定配置工作目錄。可以使用多個workdir後續引數如果是相對路徑,則會基於之前的命令指定的路徑。比如: wopkdir/home workdir test 最終的路徑為/home/test

如果設定對了環境變數 例如當前的環境變數 home =/home

則 workdir $home /test 也是/home/test

3.13 onbuild

用法:onbuild copy

說明:映象觸發器,當乙個映象被其他映象作為基礎映象是執行

Dockerfile的基礎命令

docker ce的配置檔案 etc docker daemon.json docker映象站點在國外,可以配置加速器來進行映象拉取加速 docker cn 將下列字串新增到 etc docker daemin.json 中國科技大學 阿里雲加速器 需要註冊阿里雲,然後獲得專用加速器2.1 基於容器...

Dockerfile 基礎介紹

這是本專欄的第三部分 映象篇,共 8 篇。前兩篇我為你介紹了 docker 映象生命週期的管理,以及映象的構建和分發方式。本篇,我來為你介紹 dockerfile 帶你理解 dockerfile 中的重點知識,方便你自己定義構建映象的行為。下面我們一起進入本篇的學習。在前面的內容中,我有寫過幾個 d...

DockerFile命令詳解

form 基礎映象,當前新映象是基於哪個映象的,例如我要建立乙個centos的映象,我要拉取父映象 from centos maintainer 映象的作者,一般是姓名 郵箱位址 run 容器構建時執行的命令 expose 暴露新建的映象對外服務的埠號 workdir 建立容器後的工作目錄,如果沒有...