D&K 課程筆記11 Rebuild with Cache

建立image時的Cache

ZONGRU Li
Oct 27, 2020

首先一樣在redis-image目錄下編輯Dockerfile

多新增一行如下

先不管gcc是什麼,總之就是一個應用程式

儲存後再次於該目錄執行docker build .

得到以下結果

細部來看↓

如上圖沒有看到從dockerhub下載alpine base image了

因為我們機台已經下載過了

接著又看到第二步:Using cache

docker發現我們曾經執行過一樣的動作在筆記10

所以會沿用之前的cache繼續執行

所以不會看到又安裝redis又重新做snapshot等動作

直到全新的第三步,安裝gcc應用程式

如上,才又起了一個第二步cache中的snapshot的Container來安裝gcc

最後一步在重新設置啟動redis-server指令才完成snapshot出來的image

在維持上述Dockerfile情況下,再一次執行docker build .

如上圖,我們看到都是利用cache完成整個FROM跟RUN的動作

接著做一點變化,將redis與gcc的RUN動作對調位置

修改Dockerfile內容如下

兩個RUN動作對調

再一次執行docker build .會見到

在第二步就又開始安裝gcc了

完整過程如下

看到gcc重裝,redis也重裝

如上圖

docker只依據開始有改變的那一行以後的指令重新執行下載或安裝

所以gcc重新安裝,連帶redis也重新安裝

參考課程

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet