Dockerfile 的常用引數註解和範例

2022-02-06 06:36:23 字數 2402 閱讀 7933

from centos:7.5.1804

maintainer [email protected]

cmd echo "hello world"

from centos:7.5.1804

# 指定源於乙個基礎映象 centos:7.5.1804

# from [:] [as ]

maintainer [email protected]

# 維護者/擁有者

# maintainer cmd echo "hello world"

# 執行命令

# cmd or cmd

# 整個dockerfile 中只能有乙個,多個會被覆蓋的

// 在dockerfile 所在的目錄下

docker build -t hello .

from golang:1.12 as build

env goproxy

env go111module on

workdir /go/cache

add go.mod .

add go.sum .

run go mod download

workdir /go/release

add . .

from alpine as prod

arg mode="debug"

copy --from=build /usr/share/zoneinfo/asia/shanghai /etc/localtime

copy --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt

copy --from=build /go/release /go/release/ /home/

workdir /home

env mode $

from golang:1.12 as build

# 指定源於乙個基礎映象 golang:1.12 並起乙個別名 build

# from [:] [as ]

env goproxy

env go111module on

# env 在映象內設定環境變數

# env workdir /go/cache

# 指定接下來的引數工作目錄 你可以理解為 cd /go/cache ,目錄不存在時會自動建立

# workdir add go.mod .

add go.sum .

# 這裡的意思是 go.mod 和go.sum 新增到 映象的工作目錄下即/go/cache 下

# add [--chown=:] ... run go mod download

# 執行 go mod download

# run copy . .

# 將當前目錄的所以檔案及資料夾 copy 到 工作目錄下

# 編譯go 程式

from alpine as prod

# 再指定乙個基礎映象alpine 並起別名 prod

arg mode="debug"

# 通過docker構建映象時, 外部傳參, 預設引數debug

# --build-arg mode=release 外部docker build 時新增這個引數,意思是設定mode=release

# arg [=]

copy --from=build /usr/share/zoneinfo/asia/shanghai /etc/localtime

copy --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt

copy --from=build /go/release /go/release/ /home/

# 將來自build(go:1.12) 映象下的 /usr/share/zoneinfo/asia/shanghai /etc/ssl/certs/ca-certificates.crt /go/release /go/release/

# 複製到 prod 映象的 /etc/localtime /etc/ssl/certs/ca-certificates.crt home/

# copy [--from=] ...workdir /home

# 指定工作目錄 可以理解為 cd /home

env mode $

# 設定環境變數 $ 使用的是arg 裡面的mode

# cmd 執行命令

// --build-arg 外部傳傳引數, 多個引數就新增多個--build-arg

dockerfile 官方文件

DockerFile 的引數詳解

form 功能為指定基礎映象,並且必須是第一條指令。如果不以任何映象為基礎,那麼寫法為 from scratch。同時意味著接下來所寫的指令將作為映象的第一層開始 語法 from from from 三種寫法,其中和是可選項,如果沒有選擇,那麼預設值為latest run run命令有兩種格式 ru...

Dockerfile的常用知識

在私有化部署的時候我們會用到docker,使用docker的話裡面有兩樣東西是常用的,一樣是images,也就是映象,另一種是容器container,我們都知道容器是通過映象建立的,而映象我們初學都是從公共端拉取的,那麼如果我想要乙個不一樣點的容器,或者乙個不一樣的映象該怎麼做呢?在docker裡面...

Dockerfile的常用指令

dockerfile命令格式 nginx test 映象名稱 映象標籤 docker build t nginx test 功能 cmd指令用於指定乙個容器啟動時要執行的命令。例 這裡我們將 l標誌傳遞給了 bin bash命令。cmd bin bash l 功能 entrypoint與cmd指令類...