使用Dockerfile構建nginx映象

2021-09-22 17:59:30 字數 3844 閱讀 3771

dockerfile的指令:

from:

指定基礎映象(from是必備的指令,並且必須為第一條指令)。

run:

用來執行命令列命令。其基本格式:

shell格式:

run 《命令》 ,輸入在bash環境中的命令即可,乙個dockerfile允許使用run不得超過127層,所以,使用一次run,

使用 『 \ 』 換行,使用『 && 』執行下一條命令。一般使用此種格式;

exec格式:

run <「可執行檔案」, 「引數1」, 「引數2」>,此種方式像是函式呼叫中的格式;

copy:

複製檔案。 其基本格式:

格式1:copy 《源路徑》…《目標路徑》

格式2:copy [「《源路徑1>」,…"《目標路徑》"]

add:

更高階的複製檔案,在copy的基礎上增加了一些功能,如果複製的是壓縮包的話,會直接解壓,而不需要在使用run解壓;

cmd:

容器啟動命令。其基本格式:

shell格式: cmd 《命令》

exec格式: cmd [「可執行檔案」, 「引數1」, 「引數2」…]

引數列**式: cmd [「引數1」, 「引數2」…],在指定了entrypoint指令後,用cmd指定具體的引數

entrypoint:

入口點。其基本格式分為exec和shell,

entrypoint的目的和cmd一樣,都是在指定容器啟動程式及引數。entrypoint在執行中可以替代,不過比cmd繁瑣,需要通過docker

run 的引數–entrypoint

來指定。當指定了entrypoint後,cmd的含義就發生了改變,不在是直接執行其命令,而是將cmd的內容作為引數傳遞給entrypoint指令。其執行時就變成了:

「」

env:

設定環境變數。(都可以使用這裡使用的變數)其基本格式:

格式1:env

格式2:env = =…

arg:

構建引數。構建引數和env的效果一樣,都是設定環境變數,所不同的是arg所構建的環境變數在將來容器執行時是不存在的。其基本格式:

格式1: arg 《引數名》 [=《預設值》]

格式2: 該預設值可以在構建命令 docker build 中用 --build-arg 《引數名》=《值》 來覆蓋

volume:

定義匿名卷。 其基本格式:

格式1: volume ["《路徑1>", 「《路徑2>」…]

格式2: volume 《路徑》

expose:

暴露埠。expose指令是宣告執行時容器所提供的埠,在啟動容器時不會在因為這個宣告而開啟埠。 其基本格式:

格式1: expose 《埠1> [《埠2>…]

workdir:

指定工作目錄。其基本格式:

格式1: workdir 《工作目錄路徑》

user:

指定當前使用者。user是幫助你切換到指定使用者。 其基本格式:

格式1: user 《使用者名稱》

healtcheck:

健康檢查,判斷容器的狀態是否正常。 其基本格式:

格式1: healtcheck [選項] cmd 《命令》 :設定檢查容器健康狀況的命令

格式2: healtcheck none: 如果基礎映象有健康檢查指令,使用此格式可以遮蔽掉其健

在dockerfile本目錄下建立entrypoint.sh

# ls

data  dockerfile  entrypoint.sh
# cat dockefile

from            centos:jc  # 所用映象

開始打包映象,-t 指定乙個標籤給打包出來的映象,./ 就是dockerfile所在

使用Dockerfile構建容器

通過dockerfile構建docker容器,可以只依賴基礎映象,此文以ubuntu作為基礎映象。touch dockerfile from ubuntu 14.04 maintainer tony env refreshed at 2017 05 08run apt get update run ...

使用dockerfile 構建映象

新建資料夾workdir,在資料夾中新建dockerfile檔案 此時workdir即為構建上下文,在構建映象時,docker會將構建上下文和上下文中的目錄和檔案 上傳到 docker deamon 中。要包含到映象中的檔案要放到上下文中,之後dockerfile中對檔案的複製拷貝是對上下文中的檔案...

dockerfile構建映象

尋找官方映象的dockerfile 在hub.docker.com 中,輸入映象的名字,往下拉就能找到跳轉到dockerfile的鏈結。下圖是centos的dockerfile from scratch maintainer the centos project add c68 docker.tar...