Dockerfile中最經常使用的指令

FROM
指定 base 鏡像。
MAINTAINER
設置鏡像的做者,能夠是任意字符串。
COPY
將文件從 build context 複製到鏡像。
COPY 支持兩種形式:
COPY src dest
COPY ["src", "dest"]
注意:src 只能指定 build context 中的文件或目錄。
ADD
與 COPY 相似,從 build context 複製文件到鏡像。不一樣的是,若是 src 是歸檔文件(tar, zip, tgz, xz 等),文件會被自動解壓到 dest。
ENV
設置環境變量,環境變量可被後面的指令使用。例如:
...
ENV MY_VERSION 1.3
RUN apt-get install -y mypackage=$MY_VERSION
...

EXPOSE
指定容器中的進程會監聽某個端口,Docker 能夠將該端口暴露出來。咱們會在容器網絡部分詳細討論。
VOLUME
將文件或目錄聲明爲 volume。咱們會在容器存儲部分詳細討論。
WORKDIR
爲後面的 RUN, CMD, ENTRYPOINT, ADD 或 COPY 指令設置鏡像中的當前工做目錄。
RUN
在容器中運行指定的命令。
CMD
容器啓動時運行指定的命令。
Dockerfile 中能夠有多個 CMD 指令,但只有最後一個生效。CMD 能夠被 docker run 以後的參數替換。
ENTRYPOINT
設置容器啓動時運行的命令。
Dockerfile 中能夠有多個 ENTRYPOINT 指令,但只有最後一個生效。CMD 或 docker run 以後的參數會被當作參數傳遞給 ENTRYPOINT。
下面咱們來看一個較爲全面的 Dockerfile:

Dockerfile中最經常使用的指令

注:Dockerfile 支持以「#」開頭的註釋。
構建鏡像:

Dockerfile中最經常使用的指令

① 構建前確保 build context 中存在須要的文件。
② 依次執行 Dockerfile 指令,完成構建。
運行容器,驗證鏡像內容:

Dockerfile中最經常使用的指令

① 進入容器,當前目錄即爲 WORKDIR。
若是 WORKDIR 不存在,Docker 會自動爲咱們建立。
② WORKDIR 中保存了咱們但願的文件和目錄:
目錄 bunch:由 ADD 指令從 build context 複製的歸檔文件 bunch.tar.gz,已經自動解壓。
文件 tmpfile1:由 RUN 指令建立。
文件 tmpfile2:由 COPY 指令從 build context 複製。
③ ENV 指令定義的環境變量已經生效。
相關文章
相關標籤/搜索