Dockerfile的構建過程
阿新 • • 發佈:2018-11-22
一、Dokcerfile的構建過程
步驟1、從基礎映象執行一個容器
步驟2、執行一條指令,對容器做出修改
步驟3、執行類似docker commit的操作,提交一個新的映象層
步驟4、再基於剛提交的映象執行一個新容器
步驟5、執行Dockerfile中的下一條指令,直至所有指令執行完畢
二、構建映象的中間層除錯
可以執行Dockerfile中間層映象來建立一個容器進行除錯,主要用於排查Dockerfile是否出錯。
三、Dockerfile映象快取
Dockerfile構建命令如下: 語法:docker build [OPTIONS] PATH | URL | - 引數說明: OPTIONS說明: --build-arg=[] :設定映象建立時的變數; --cpu-shares :設定 cpu 使用權重; --cpu-period :限制 CPU CFS週期; --cpu-quota :限制 CPU CFS配額; --cpuset-cpus :指定使用的CPU id; --cpuset-mems :指定使用的記憶體 id; --disable-content-trust :忽略校驗,預設開啟; -f :指定要使用的Dockerfile路徑; --force-rm :設定映象過程中刪除中間容器; --isolation :使用容器隔離技術; --label=[] :設定映象使用的元資料; -m :設定記憶體最大值; --memory-swap :設定Swap的最大值為記憶體+swap,"-1"表示不限swap; --no-cache :建立映象的過程不使用快取; --pull :嘗試去更新映象的新版本; --quiet, -q :安靜模式,成功後只輸出鏡像 ID; --rm :設定映象成功後刪除中間容器; --shm-size :設定/dev/shm的大小,預設值是64M; --ulimit :Ulimit配置。 --tag, -t: 映象的名字及標籤,通常 name:tag 或者 name 格式;可以在一次構建中為一個映象設定多個標籤。 --network: 預設 default。在構建期間設定RUN指令的網路模式 示例: 1.使用當前目錄的 Dockerfile 建立映象,標籤為 runoob/ubuntu:v1。 docker build -t runoob/ubuntu:v1 . 2.使用URL github.com/creack/docker-firefox 的 Dockerfile 建立映象。 docker build github.com/creack/docker-firefox 3.也可以通過 -f Dockerfile 檔案的位置: $ docker build -f /path/to/a/Dockerfile .
使用docker build命令構建Dockerfile有中間映象快取。
在構建Dockerfile不使用快取有下面兩種方式:
1.在使用docker build構建Dockerfile是新增–no-cache選項;
2.修改Dockerfile中ENV REFRESH_DATE來重新整理快取
四、檢視映象的構建過程
檢視映象構建過程命令如下:
語法:docker history [OPTIONS] IMAGE
引數說明:
OPTIONS說明:
-H :以可讀的格式列印映象大小和日期,預設為true;
--no-trunc :顯示完整的提交記錄;
-q :僅列出提交記錄ID。
示例:
檢視本地映象runoob/ubuntu:v3的建立歷史。
[email protected]:~# docker history runoob/ubuntu:v3