5分鐘玩轉 Docker 容器技術,你學會了嗎?

Docker 技術 IT優就業 2017-05-19

Dockerfile 系統學習

下面列出了 Dockerfile 中最常用的指令,完整列表和說明可參看官方文檔。

FROM

指定 base 鏡像。

MAINTAINER

設置鏡像的作者,可以是任意字符串。

COPY

將文件從 build context 複製到鏡像。

COPY 支持兩種形式:

  1. COPY src dest

  2. 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:

5分鐘玩轉 Docker 容器技術,你學會了嗎?

注:Dockerfile 支持以“#”開頭的註釋。

構建鏡像:

5分鐘玩轉 Docker 容器技術,你學會了嗎?

① 構建前確保 build context 中存在需要的文件。

② 依次執行 Dockerfile 指令,完成構建。

運行容器,驗證鏡像內容:

5分鐘玩轉 Docker 容器技術,你學會了嗎?

① 進入容器,當前目錄即為 WORKDIR。

如果 WORKDIR 不存在,Docker 會自動為我們創建。

② WORKDIR 中保存了我們希望的文件和目錄:

目錄 bunch:由 ADD 指令從 build context 複製的歸檔文件 bunch.tar.gz,已經自動解壓。

文件 tmpfile1:由 RUN 指令創建。

文件 tmpfile2:由 COPY 指令從 build context 複製。

③ ENV 指令定義的環境變量已經生效。

在上面這些指令中,RUN、CMD、ENTRYPOINT 很重要且容易混淆,以後會有專門討論課程。


更多IT知識,IT行業最新資訊:

優就業500萬基金就業促進計劃:http://www.ujiuye.com/zt/jycj/?wt.bd=wt201704

優就業官網:http://www.ujiuye.com/?wt.bd=wt201704

相關推薦

推薦中...