歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 制作Docker鏡像

制作Docker鏡像

日期:2017/2/28 13:44:15   编辑:Linux教程

編寫DockerFile

這個DockerFile是一個制作鏡像的配方,用於描述這些文件,環境,和命令。在Linux、macOS的窗口終端中,或者windows的命令提示符下,執行下面的步驟,切記如果你使用的是macOS或者windows,你依然創建的是運行在Linux下的映像。

  1. 創建一個目錄,在windows下使用md命令:
    $ mkdir mydockerbuild

    PS:構造鏡像所需的所有東西都放在這個文件夾中。

  2. 切換到mydockerbulid目錄中:
    $ cd mydockerbulid
  3. 在當前目錄中,創建編輯Dockerfile文本文件:
    $ nano Dockerfile
  4. 復制下面這行,在文件中添加From 語句:
    From docker/whalesay:lastet

    PS:這個From 關鍵字告訴Docker你的映像是基於哪個映像。

  5. 添加RUN 語句來在映像中安裝fortunes程序:
    RUN apt-get -y update && apt-get install -y fortunes


    這個whalesay映像是基於Ubuntu的,使用apt-get進行安裝包。這兩個命令用來刷新映像可用的包列表並安裝fortunes程序,用來輸出名言警句。

  6. 添加CMD 命令,這個告訴映像在它的環境被建立後,運行的命令,這個命令運行 fortune -a 且把它的輸出傳入cowsay程序。
    CMD /usr/games/fortune -a | cowsay
  7. 驗證,你的文件應該像這樣:
    FROM docker/whalesay:latest
    RUN apt-get -y update && apt-get install -y fortunes
    CMD /usr/games/fortune -a | cowsay

從Dockerfile中創建Image

當你mydockerbulid目錄,使用docker bulid命令創建image,-t 參數來給你映像一個標簽,因此之後你可以更容易地運行它。不要忘記.命令,這表示該命令是在當前命令來查找Dockerfile文件。

PS:使用docker images 就可以看到我們新創建的映像。

$ docker build -t docker-whale .

Sending build context to Docker daemon 2.048 kB
...snip...
Removing intermediate container cb53c9d09f3b
Successfully built c2c3152907b5

關於bulid構建過程

  1. Docker檢查並確保它有它構建所需要的一切,這會生稱下面這條信息:
    Sending build context to Docker daemon 2.048 kB
  2. Docker檢查whalesay映像是否在本地安裝,如果沒有從Hub上進行獲取。對應Dockerfile的FROM 語句,將會生成這樣的消息:
    Step 1 : FROM docker/whalesay:latest
     ---> 6b362a9f73eb

    PS:執行每個步最後,將會打印ID,Dockerfile每一行對應於映像的每一圖層,這個ID是每一步驟創建的圖層。

  3. Docker啟動臨時容器來運行whalesay映像。在臨時容器中,Docker運行Dockerfile中下一個命令,即RUN命令,用於安裝fortune程序,當RUN命令完成時,將創建一個新圖層,刪除中間容器。
  4. 創建一個新的中間容器,Docker為Dockerfile中CMD行添加一個層,並刪除中間容器。

運行新構建的映像

docker run docker-whale
Copyright © Linux教程網 All Rights Reserved