製作Docker映象

2022-09-01 15:00:12 字數 1875 閱讀 2768

這個dockerfile是乙個製作映象的配方,用於描述這些檔案,環境,和命令。在linux、macos的視窗終端中,或者windows的命令提示符下,執行下面的步驟,切記如果你使用的是macos或者windows,你依然建立的是執行在linux下的映像。

建立乙個目錄,在windows下使用md命令:

$ mkdir mydockerbuild

ps:構造映象所需的所有東西都放在這個資料夾中。

切換到mydockerbulid目錄中:

$ cd mydockerbulid

$ nano dockerfile

複製下面這行,在檔案中新增from 語句:

from docker/whalesay:lastet

ps:這個from 關鍵字告訴docker你的映像是基於哪個映像。

新增run 語句來在映像中安裝fortunes程式:

run apt-get -y update && apt-get install -y fortunes

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

新增cmd 命令,這個告訴映像在它的環境被建立後,執行的命令,這個命令執行 fortune -a 且把它的輸出傳入cowsay程式。

cmd /usr/games/fortune -a | cowsay

驗證,你的檔案應該像這樣:

from docker/whalesay:latest

run apt-get -y update && apt-get install -y fortunes

cmd /usr/games/fortune -a | cowsay

當你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

docker檢查並確保它有它構建所需要的一切,這會生稱下面這條資訊:

sending build context to docker daemon 2.048 kb

docker檢查whalesay映像是否在本地安裝,如果沒有從hub上進行獲取。對應dockerfile的from 語句,將會生成這樣的訊息:

step 1 : from docker/whalesay:latest

---> 6b362a9f73eb

ps:執行每個步最後,將會列印id,dockerfile每一行對應於映像的每一圖層,這個id是每一步驟建立的圖層。

docker啟動臨時容器來執行whalesay映像。在臨時容器中,docker執行dockerfile中下乙個命令,即run命令,用於安裝fortune程式,當run命令完成時,將建立乙個新圖層,刪除中間容器。

建立乙個新的中間容器,docker為dockerfile中cmd行新增乙個層,並刪除中間容器。

docker run docker-whale

製作docker映象

命令docker build,從零開始來建立乙個新的映象。為此,我們需要建立乙個 dockerfile 檔案,其中包含一組指令來告訴 docker 如何構建我們的映象 指定基礎映象 from openjdk 8 dockerfile使用變數 可以在dockerfile中進行引用 工作目錄 指定ver...

製作docker映象

基礎環境說明 cat etc redhat release centos release 6.8 final 設定 docker 映象源 yum install y yum priorities rpm ivh rpm import etc pki rpm gpg rpm gpg key epel ...

Docker映象製作

copy on write 寫時複製 docker映象實際上乙個檔案系統,但只有頂層可以讀寫。dockerfile是軟體的原材料,docker映象是軟體的交付品,而docker容器則可以認為是軟體的執行態。從應用軟體的角度來看,dockerfile docker映象與docker容器分別代表軟體的三...