使用dockerfile 構建映象

2021-08-19 09:25:55 字數 2174 閱讀 8714

新建資料夾workdir,在資料夾中新建dockerfile檔案

此時workdir即為構建上下文,在構建映象時,docker會將構建上下文和上下文中的目錄和檔案 上傳到 docker deamon 中。

要包含到映象中的檔案要放到上下文中,之後dockerfile中對檔案的複製拷貝是對上下文中的檔案。

dockerfile基本例項如下,之後執行docker build命令即可完成映象構建。

# dockerfile version 1.0

# 基礎映象

from node

# 拷貝檔案到映象中

copy ./ /code/

# 作者資訊

label maintainer="***x@***.com"

# 工作目錄

workdir /code

#在容器中執行一條命令

run ["/bin/bash", "-c", "echo hello"]

# print help info, while not input cmd

cmd ["/bin/sh", "-c", "cat readme.md"]

docker build -t="test/test2:v2" .

基本語句

# 第一條指令指定乙個基本的映象源,從公共庫拉取乙個映象源。並且from必須是第一行。

from

from from :from @# 設定標籤,採用鍵值對的形式。

label

label ===# 執行類linux 命令。

runrun run ["executable", "param1", "param2"]

# 用來指定容器的監聽埠。

expose

expose [...]

# 因為埠還和宿主機相關,不建議直接在映象開端口而是在生成例項時使用命令列指定埠

# 設定環境變數的鍵值。

envenv env =# 設定當前工作路徑

workdir

workdir /path/to/workdir

# 複製檔案

# add、copy

copy add # add在和copy相同的基礎上,增加:

# 1、add 允許 是乙個 url。

# 2、add 的是乙個壓縮格式文件將會解壓縮複製。

# 所以使用 copy除非你確信你需要 add。

# cmd 與 entrypoint

cmd ["executable","param1","param2"] #(執行乙個可執行的檔案並提供引數)

cmd command param1 param2 #(以」/bin/sh -c」的方法執行的命令)

entrypoint ["executable", "param1", "param2"]

entrypoint command param1 param2 #(以」/bin/sh -c」的方法執行的命令)

## 使用陣列引數的時候,docker會嚴格依照陣列執行,而直接傳參docker會呼叫/bin/sh -c,建議使用 ["/bin/sh", "-c", "cat readme.md"] 的方式,避免意外。

# cmd 與 entrypoint的區別:

# 1、dockerfile應至少指定乙個cmd命令或entrypoint。

# 2、乙個dockerfile只能有乙個cmd/entrypoint指令,如果有超過乙個cmd將只啟動並有效最後乙個。

# 3、cmd在執行時會被command覆蓋, entrypoint不會被執行時的command覆蓋。 故可以使用 cmd來設定預設啟動命令。

# 4、如果在dockerfile中同時寫了entrypoint和cmd則,docker在build過程中會將cmd中指定的內容作為entrypoint的引數。

# 5、需要初始化執行多個命令,彼此之間可以使用 && 隔開

## 注意

# 開始時run apt-get update 最後要清除apt 的快取並移除 /var/lib/apt/lists 檔案下的內容,使得映象檔案更精簡。

使用Dockerfile構建nginx映象

dockerfile的指令 from 指定基礎映象 from是必備的指令,並且必須為第一條指令 run 用來執行命令列命令。其基本格式 shell格式 run 命令 輸入在bash環境中的命令即可,乙個dockerfile允許使用run不得超過127層,所以,使用一次run,使用 換行,使用 執行下...

Dockerfile構建映象,映象入倉庫,映象啟動

dockerfile是由一系列命令和引數構成的指令碼,這些命令應用於基礎映象並最終建立乙個新的映象。它們簡化了從頭到尾的流程並極大的簡化了部署工作。dockerfile從from命令開始,緊接著跟隨者各種方法,命令和引數。其產出為乙個新的可以用於建立容器的映象。dockerfile示例 form u...

使用Dockerfile構建容器

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