dockerfile自定義映象的使用
阿新 • • 發佈:2021-01-10
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 壓縮檔案。會令映象構建快取失效,從而可能會令映象構建變得比較緩慢。具體是否使用,可以根據是否需要自動解壓來決定。