Blog:博客園 個(gè)人
Dockerfile
Dockerfile是一個(gè)文本文件,記錄了鏡像構(gòu)建的所有步驟。
Dockerfile常用指令如下:
# 指定base鏡像
FROM <image>
FROM <image>:<tag>
FROM <image>@<digest>
# 維護(hù)者信息
MAINTAINER <name>
# 構(gòu)建鏡像時(shí)執(zhí)行的命令
RUN <command>
RUN ["executable", "param1", "param2"]
# 將本地文件添加到容器中,tar類(lèi)型文件會(huì)自動(dòng)解壓(網(wǎng)絡(luò)壓縮資源不會(huì)被解壓),可以訪(fǎng)問(wèn)網(wǎng)絡(luò)資源,類(lèi)似wget
ADD <src>... <dest>
ADD ["<src>",... "<dest>"] # 用于支持包含空格的路徑
# 將文件從build context復(fù)制文件到鏡像
COPY <src>... <dest>
COPY ["<src>",... "<dest>"]
# 構(gòu)建容器后調(diào)用,也就是在容器啟動(dòng)時(shí)才進(jìn)行調(diào)用
CMD ["executable","param1","param2"] # 執(zhí)行可執(zhí)行文件,優(yōu)先
CMD ["param1","param2"] # 設(shè)置了ENTRYPOINT,則直接調(diào)用ENTRYPOINT添加參數(shù)
CMD command param1 param2 # 執(zhí)行shell內(nèi)部命令
# 配置容器,使其可執(zhí)行化。配合CMD可省去"application",只使用參數(shù)
ENTRYPOINT ["executable", "param1", "param2"] # 可執(zhí)行文件, 優(yōu)先
ENTRYPOINT command param1 param2 # shell內(nèi)部命令
# 為鏡像添加元數(shù)據(jù)
LABEL <key>=<value> <key>=<value> <key>=<value> ...
# 設(shè)置環(huán)境變量
ENV <key> <value> # <key>之后的所有內(nèi)容均會(huì)被視為其<value>的組成部分,因此,一次只能設(shè)置一個(gè)變量
ENV <key>=<value> ... # 可以設(shè)置多個(gè)變量,每個(gè)變量為一個(gè)"<key>=<value>"的鍵值對(duì),如果<key>中包含空格,可以使用\來(lái)進(jìn)行轉(zhuǎn)義,也可以通過(guò)""來(lái)進(jìn)行標(biāo)示;另外,反斜線(xiàn)也可以用于續(xù)行
# 指定持久化目錄
VOLUME ["/path/to/dir"]
# 切換工作目錄
WORKDIR /path/to/workdir
|