Dockerfile構(gòu)建的基本用法
`bash
docker build [選項] 路徑 | URL | - `構(gòu)建上下文是由文件路徑或一個URL(Git倉庫位置)定義的一組文件。使用當(dāng)前目錄作為構(gòu)建上下文的簡單構(gòu)建命令如下。
`bash
docker build . `鏡像構(gòu)建由Docker守護進程而不是命令行接口運行。構(gòu)建過程中一開始將整個構(gòu)建上下文遞歸地發(fā)送給守護進程。
要使用構(gòu)建上下文中的文件,可由Dockerfile引用由指令(例如COPY)指定的文件。
按照習(xí)慣,將Dockerfile文件直接命名為“Dockerfile”,并置于構(gòu)建上下文的根位置。
Docker守護進程逐一執(zhí)行Dockerfile中的指令。
Dockerfile中的每條指令都被獨立執(zhí)行并創(chuàng)建一個新鏡像,RUN cd /tmp等命令就不會對下一條指令產(chǎn)生影響。
只要有可能,Docker將重用過程中的中間鏡像(緩存),以加速構(gòu)建過程。
Dockerfile格式 \# 注釋指令 參數(shù)
指令不區(qū)分大小寫,建議大寫。指令可以指定若干參數(shù)。
Docker按順序執(zhí)行其中的指令。Dockerfile文件必須以FROM指令開頭。FROM指令之前唯一允許的是ARG指令(用于定義變量)。
以“#”符號開頭的行都將被視為注釋,除非是解析器指令(Parser Directive)。
解析器指令是可選的,它會影響處理Dockerfile中后續(xù)行的方式。
一旦注釋、空行或構(gòu)建器指令被處理,Docker就不再搜尋解析器指令。
Docker可使用解析器指令escape設(shè)置用于轉(zhuǎn)義字符的字符。如果未指定,則默認轉(zhuǎn)義字符為反斜杠“\”。
`bash
Dockerfile 是由一行行命令語句組成,并且支持已 # 開頭的注釋行
一般來說,我們可以將 Dockerfile 分為四個部分:
基礎(chǔ)鏡像(父鏡像)信息指令 FROM
維護者信息指令 MAINTAINER
鏡像操作指令 RUN 、ENV、ADD 和 WORKDIR 等
容器啟動指令 CMD 、ENTRYPOINT 和 USER 等