1. 程式人生 > 其它 >DockerFile體系構建(保留字指令)

DockerFile體系構建(保留字指令)

保留字指令

FROM      --基礎映象,當前映象是基於那個映象的

MAINTAINER   --映象維護者的名字和郵件地址

RUN      --容器構建時需要執行的命令

EXPOSE     --當前容器對外暴露的埠

WORKDR    --指定在建立容器後,終端預設登入的進來工作目錄,一個落腳點

ENV     --用來構建映象過程中設定環境變數

ADD       --將宿主機目錄下的檔案拷貝進映象且ADD命令會自動處理URL和解壓tae壓縮包

COPY      --類似ADD,拷貝檔案和目錄到映象。將從構建上下文目錄<源路徑>的檔案/目錄複製到新的一層的映象內的<目標路徑>位置

VOLUME     --容器資料卷,用於資料儲存和持久化的命令

CMD     --指定一個容器啟動時要執行的命令。DockerFile中可以有多個CMD指令,但只有最後一個生效,CMD會被docker run 之後的引數替換

ENTRYPOINT   --指定一個容器啟動時要執行的命令。ENTRYPOINT和CMD一樣,都是在指定容器啟動程式及引數

ONBUILD     --當構建一個被繼承的DockerFile執行命令,父映象在被繼承後父映象的onbuild被觸發

案例1

Base 映象(scratch)

Docker Hub中 99%的映象都是通過在base映象中安裝和配置需要的軟體構建出來的

自定義映象mycentos

官網拉下來的 centos 預設路徑是 / ,不支援 vim 不支援 ifconfig

我們自定義的 mycentos目的使我們自己的映象具備如下:

  登入後的預設路徑

  vim編輯器

  檢視網路配置ifconfig支援

1.編寫

準備Dockerfile檔案

mycentos內容Dockerfile

FROM centos
MAINTAINER sw<sw@126.com>

ENV MYPATH /usr/local
WORKDIR $MYPATH

RUN yum -y install vim
RUN yum -y install net-tools

EXPOSE 
80 CMD echo $MYPATH CMD echo "success--------------ok" CMD /bin/bash

2.構建

docker build -f DockerFile -t 新映象名字:TAG .

檢視一下我們製作的映象

docker images

3.執行

docker run -it mycentos:1.3

注; 我們可以看到,自定義的映象 預設路徑發生了改變,並且支援 vim 與 ifconfig

4.列出映象的變更歷史

docker history 6d493064c6ca

案例2