Dockerfile使用介紹

Dockerfile 概念

  • Docker 鏡像是一個特殊的文件系統,除了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些爲運行時準備的一些配置參數(如匿名卷、環境變量、用戶等)。鏡像不包含任何動態數據,其內容在構建以後也不會被改變。
  • 鏡像的定製實際上就是定製每一層所添加的配置、文件。若是咱們能夠把每一層修改、安裝、構建、操做的命令都寫入一個腳本,用這個腳原本構建、定製鏡像,那麼以前說起的沒法重複的問題、鏡像構建透明性的問題、體積的問題就都會解決。這個腳本就是 Dockerfile。
  • Dockerfile 是一個文本文件,其內包含了一條條的指令(Instruction),每一條指令構建一層,所以每一條指令的內容,就是描述該層應當如何構建。有了 Dockerfile,當咱們須要定製本身額外的需求時,只需在 Dockerfile 上添加或者修改指令,從新生成 image 便可,省去了敲命令的麻煩。

Dockerfile 文件格式

第一行必須指定 基礎鏡像信息

FROM ubuntunginx

維護者信息

MAINTAINER docker_user docker_user@email.comdocker

鏡像操做指令

RUN apt-get update && apt-get install -y nginx
RUN echo "\ndaemon off;" >> /etc/nginx/nginx.confapache

容器啓動執行指令

CMD /usr/sbin/nginxubuntu

  • Dockerfile 分爲四部分:基礎鏡像信息、維護者信息、鏡像操做指令、容器啓動執行指令。一開始必需要指明所基於的鏡像名稱,接下來通常會說明維護者信息;後面則是鏡像操做指令,例如 RUN 指令。每執行一條RUN 指令,鏡像添加新的一層,並提交;最後是 CMD 指令,來指明運行容器時的操做命令。

FROM 指定基礎鏡像

  • 所謂定製鏡像,那必定是以一個鏡像爲基礎,在其上進行定製。而 FROM 就是指定基礎鏡像,所以一個 Dockerfile 中 FROM 是必備的指令,而且必須是第一條指令。

RUN 執行命令

  • RUN 指令是用來執行命令行命令的。

CMD

  • CMD指令用於執行目標鏡像中包含的軟件和任何參數。CMD 幾乎都是以CMD ["executable", "param1", "param2"...]的形式使用。所以,若是建立鏡像的目的是爲了部署某個服務(好比 Apache),你可能會執行相似於CMD ["apache2", "-DFOREGROUND"]形式的命令。
相關文章
相關標籤/搜索