在構建docker容器時,應該盡量想辦法獲得體積更小的映象,因為傳輸和部署體積較小的映象速度更快。
但run語句總是會建立乙個新層,而且在生成映象之前還需要使用很多中間檔案,在這種情況下,該如何獲得體積更小的映象呢?
示例:dockerfile
from ubuntu:14.04
add run.sh /
volume /data
cmd [「./run.sh」]
上面的dockerfile的行為:
基於ubuntu:14.04系統將run.sh放在根目錄下,設定卷掛載點,然後在image啟動的時候run指令碼run.sh。下圖就是形成的docker image:
通過上面的示例可以看到,docker映象的生成過程。
選擇乙個較小的原映象,也就是from後面的那個映象盡量要小
選擇多階段構建映象,最終的映象不包含編譯器和整個編譯工具鏈
第一階段指定workdir,第二階段使用絕對路徑拷貝檔案
使用靜態庫替代動態庫
根據實際情況對dockerfile中的層進行合併,比如將多條run命令合併成一條
Docker映象的優化
1 清理不必要的中間產物 2 減少run命令的使用 3 使用多階段構建映象 4 選擇精簡的base映象 優化映象其實就是在能保證映象想要的作用的前提下,盡量減小映象的大小,節省資源。優化映象有幾種途徑 注意 必須是在保證映象作用的前提下進行優化 下面通過實際操作來展示映象是如何被優化的,這裡我假設想...
怎樣壓縮Docker 映象的大小
第一步是修改dockerfile裡的基礎映象 from ubuntu from alpine from python 2.7 from python 2.7 alpine from ruby 2.3 from ruby 2.3 alpine 使用alpine最大的不同就是安裝包的方式不一樣 比如ru...
Linux之Docker(四)映象優化
隨著我們對docker映象的持續使用,在此過程中如果不加以注意並且優化,映象的體積會越來越大 很多時候我們在使用docker部署應用時,會發現映象的體積至少有1g以上 映象體積的增大,不單單會增加磁碟資源與網路資源的開銷,也會影響應用的部署效率,使得應用的部署時間會越來越長 因此我們需要減少部署映象...