1. 程式人生 > 其它 >dockerfile自定義映象的使用

dockerfile自定義映象的使用

技術標籤:dockerdocker

dockerfile作用
Dockerfile 是一個用來構建映象的文字檔案,文字內容包含了一條條構建映象所需的指令和說明,幫我們把應用打包成映象,這樣我們就可以在容器中執行這個應用了

將dockerfile檔案構建成映象命令
docker build -t 映象名:版本號 dockerfile檔案地址

dockerfile檔案中的指令

FROM:定製的映象都是基於 FROM 的映象
RUN:用於執行後面跟著的命令列命令有以下倆種格式:

**shell 格式:**

RUN <命令列命令>
 <命令列命令> 等同於,在終端操作的 shell 命令。
**exec 格式:**
RUN [
"可執行檔案", "引數1", "引數2"] 例如: RUN ["./test.php", "dev", "offline"] 等價於 RUN ./test.php dev offline

CMD:類似於 RUN 指令,用於執行程式,但二者執行的時間點不同:

	CMD在docker run 時執行。
	RUN 是在 docker build。
	作用:為啟動的容器指定預設要執行的程式,程式執行結束,容器也就結束。CMD 指令指定的程式可被 docker run 命令列引數中指定要執行的程式所覆蓋。

注意:如果 Dockerfile 中如果存在多個 CMD 指令,僅最後一個生效。

EXPOSE:僅僅只是宣告埠。

作用:

幫助映象使用者理解這個映象服務的守護埠,以方便配置對映。
在執行時使用隨機埠對映時,也就是 docker run -P 時,會自動隨機對映 EXPOSE 的埠。
格式:

EXPOSE <埠1> [<埠2>...]

WORKDIR :指定工作目錄。用 WORKDIR 指定的工作目錄,會在構建映象的每一層中都存在。(WORKDIR 指定的工作目錄,必須是提前建立好的)。

docker build 構建映象過程中的,每一個 RUN 命令都是新建的一層。只有通過 WORKDIR 建立的目錄才會一直存在。

格式:

WORKDIR <
工作目錄路徑>

COPY:複製指令,從上下文目錄中複製檔案或者目錄到容器裡指定路徑。

格式:

COPY  <主機資源路徑>...  <映象容器路徑>

ADD:ADD 指令和 COPY 的使用格式一致(同樣需求下,官方推薦使用 COPY)。

功能也類似,不同之處如下:
ADD 的優點:在執行 <原始檔>tar 壓縮檔案的話,壓縮格式為 gzip, bzip2 以及 xz 的情況下,會自動複製並解壓到 <目標路徑>。
ADD 的缺點:在不解壓的前提下,無法複製 tar 壓縮檔案。會令映象構建快取失效,從而可能會令映象構建變得比較緩慢。具體是否使用,可以根據是否需要自動解壓來決定。