Dockerfile詳解

Docker instructions

  • FROMhtml

  • FROM指令是最重要的一個且必須爲Dockerfile文件開篇的第一個非註釋行,用於爲映像文件構建過程指  定基準鏡像,後續的指令運行與此基準鏡像所提供的運行環境。node

  • 實踐中,基準鏡像能夠是任何可用鏡像文件,默認狀況下,docker build會在docker主機上查找指定的  鏡像文件,在其不存在時,則會從Docker Hub Registry上拉取所須要的鏡像文件web

  • 若是找不到指定的鏡像文件,Docker build會返回一個錯誤信息docker

    • Syntaxvim

      • FROM <repository>[:<tag>]或ui

      • FROM <repository>@<digest>spa

        • <repository>:指定做爲base image的名稱code

        • <tag>: base image的標籤,爲可選項,默認爲latest;htm

 

  • MAINTAINER(depreacred) #較新版本中能夠使用LABEL 採用K:V格式blog

    •  用於讓Dockerfile製做者提供本人的詳細信息

    •  Docker並不限制MAINTAINER指令可出現的位置,可是推薦將其放置於FROM指令以後

      • Syntax

        • MAINTAINER <authtor>

          • <authtor>能夠是任何文本信息,約定俗成使用做者筆字及郵箱
  • COPY
    • 用於從Docker主機複製文件至建立的新映像文件
    • Syxtax
      • COPY <scr>...<dest>或
      • COPY["<src>"..."<dest>"]
        • <src>:要複製的源文件或目錄,支持使用通配符;
        • <dest>:目標路徑,即正在建立的image的文件系統路徑;建議爲<dest>使用絕對路徑,不然,COPY指定則爲WORKDIR爲其起始路徑;
      • 注意:在路徑中有空白字符時,一般使用第二種格式  
    • 文件複製準則
      • <src>必須是build上下文中的路徑,不能是其父目錄中的文件;
      • 若是<src>是目錄,則其內部文件或子目錄會被遞歸複製,但<src>目錄自身不會被複制;
      • 若是指定了多個<src>,或在<src>中使用了通配符,則<dest>必須是一個目錄,且必須以 / 結尾;
      • 若是<desc>不存在,會被自動建立,這包括其父目錄路徑。

     接下來建立一個dockerfile工做目錄,開始寫一個簡單的dockerfile

    

[root@node1 ~]# mkdir images 
[root@node1 ~]# cd images/
[root@node1 images]# vim Dockerfile
        # Description: test image
        FROM busybox:latest
        MAINTAINER "SANDIAN <sandian@node1.com>"
        #LABEL maintainer = "SANDIAN <sandian@node1.com>"
        COPY index.html /data/web/html/
#建立一個index.html文件
[root@node1 images]# vim index.html
            <h1>Dockerfile for node1<h1>
#接下來咱們就能夠構建鏡像

 [root@node1 images]# docker build -t httpd:v0-1 ./

 #驗證

  

[root@node1 images]# docker run --name web1 --rm httpd:v0-1 cat /data/web/html/index.html  <h1>Dockerfile for node1<h1>

相關文章
相關標籤/搜索