Docker系列(四)Dockerfile

基本語法
  • 使用 #來註釋
  • FROM 指令告訴Docker使用哪一個鏡像做爲基礎
  • 接着是維護者信息
  • RUN 開頭的指令會在建立中運行,好比安裝軟件包

FROM

格式: FROM<image>或FROM<image>:<tag>docker

說明:第一條指令必須爲FROM指令,若是在同一個Dockerfile文件中建立多個鏡像時,可使用多個FROM指令(每一個鏡像一次).shell

MAINTAINER

格式:數據庫

MAINTAINER <name> ##name爲指定維護者信息服務器

RUN

格式:cmd

RUN <command> 或 RUN [「executable」,」param1」,」param2」]table

前者將在shell終端中運行命令,即 /binsh –c ;後者則使用exec執行,指定使用其它終端能夠經過第二種方式實現.容器

RUN <cmd>被看成/bin/sh –c 「cmd」運行基礎

RUN [「executable」,」param1」,…]:Docker把它看成JSON的序列來解析,所以必須用雙引號,並且executable須要完整的路徑。變量

CMD

功能:軟件

執行Container時的默認行爲,指定啓動容器時執行的命令,每一個Dockerfile只能有一條CMD命令,若是有多條,只有最後一天會被執行。

格式:

CMD [「executable」,」param1」,」param2」]

CMD command param1 param2 在/bin/sh中執行,提供給須要的支付運用.

CMD [「param1」,」param2」]提供給ENTRYPOINT的默認參數.

EXPOSE

格式:EXPOSE <port> [<port> …]

功能:Docker服務器暴露的端口號,供互聯繫統使用,在啓動容器時須要經過 –P,Docker主機會自動分配一個端口轉發到指定的端口.

ENV

格式:ENV <key><value> ##類型MAP

功能:指定一個環境變量,會被後續RUN指令使用,並在容器運行時保持.

ADD

功能:

複製指定的 <src>到容器中的<dest>.其中<src>能夠是Dockerfile所在的目錄的一個相對路徑,也能夠是一個URL,還能夠是一個tar文件(自動解壓爲目錄).

格式:

ADD <src> <dest>

例子:ADD myApp /var/www

COPY

格式: COPY <src> <dest>

複雜本地機器的<src>到容器中的<dest>,注:src爲Dockerfile所在目錄的相對路徑.

ENTRYPOINT

格式:

ENTRYPOINT [「executable」,」param1」,」param2」]

ENTRYPOINT command param1 param2 (默認的shell中執行)

功能:

一、 把整個Container變成一個可執行的文件。

二、 鏡像的執行入口

三、 配置容器啓動後執行的命令,而且不能夠被docker run提供的參數覆蓋.

四、 每一個Dockerfile中只有一個ENTRYPOINT,當指定多個事,只有最後一個生效

五、 當定義了ENTRYPOINT之後,CMD只可以做爲參數進行傳遞.

VOLUME

格式:

VOLUME[「/data」]

功能:建立一個能夠從本地主機或其它容器掛載的掛載點,通常用來存放數據庫和須要保持的數據等.注意「/data」是指定的容器中目錄

USER

格式:

USER daemon

功能:

指定運行容器時的用戶名或UID,後續的RUM也會使用指定用戶.當服務不須要管理員權限時,能夠經過該命令指定運行用戶.

WORKDIR

格式:

WORKDIR /path/to/workdir

功能:

爲後續的RUN、CMD、ENTRYPOINT指令配置工做目錄.可使用多個WORKDIR指令,後續命令若是參數是相對路徑,則會基於以前命令指定的路徑.

ONBUILD

格式:

ONBUILD [INSTRUCTION]

功能:

配置當所建立的鏡像做爲其它新建立鏡像的基礎鏡像時,所執行的操做指令.

相關文章
相關標籤/搜索