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指令類...