1、清理不必要的中間產物
2、減少run命令的使用
3、使用多階段構建映象
4、選擇精簡的base映象
優化映象其實就是在能保證映象想要的作用的前提下,盡量減小映象的大小,節省資源。
優化映象有幾種途徑:
注意:必須是在保證映象作用的前提下進行優化
下面通過實際操作來展示映象是如何被優化的,這裡我假設想要的是能夠執行nginx服務的功能的映象。
清理映象構建的中間產物,來達到縮減映象大小的目的。
由於每乙個run命令就會使映象的自定義映象層增加一層,所以可以盡量將需要用到run命令的操作寫到同乙個run中,這樣多個run就能合併為乙個,操作沒有變化,但映象層減少了,就能縮減映象的大小。
由於安裝nginx時需要安裝一些依賴性軟體等,對系統改動較大,所以可以將構建映象的過程分為多個階段,比如此處簡單分為兩個階段。
階段一:該階段主要用於通過正常的步驟安裝nginx,生成需要的nginx二進位制檔案。安裝過程對系統改動較大,會占用很多空間,所以階段一主要作為生成二進位制檔案的構建的中間產物,而不作為最終生成的映象使用。
階段二:將階段一生成的二進位制檔案拷貝到階段二中,這樣階段二就不需要改動系統,只得到二進位制檔案即可,所以將階段二生成的映象作為最終生成的映象。
若基礎映象小,構建出來的新映象就有很大的優勢,畢竟新映象是要在基礎映象之上進行操作的。
假設基礎映象只有20m,即使新映象增加的內容有40m,那麼最終的新映象大小也只有60m,
而若基礎映象有200m,即使新映象增加的內容只有4m,那麼最終的新映象大小也有204m。
所以說選擇盡量精簡的基礎映象是非常至關重要的。
Docker映象壓縮和優化
在構建docker容器時,應該盡量想辦法獲得體積更小的映象,因為傳輸和部署體積較小的映象速度更快。但run語句總是會建立乙個新層,而且在生成映象之前還需要使用很多中間檔案,在這種情況下,該如何獲得體積更小的映象呢?示例 dockerfile from ubuntu 14.04 add run.sh ...
Linux之Docker(四)映象優化
隨著我們對docker映象的持續使用,在此過程中如果不加以注意並且優化,映象的體積會越來越大 很多時候我們在使用docker部署應用時,會發現映象的體積至少有1g以上 映象體積的增大,不單單會增加磁碟資源與網路資源的開銷,也會影響應用的部署效率,使得應用的部署時間會越來越長 因此我們需要減少部署映象...
docker映象體積優化方法與實踐
在私有化專案中,我司現場實施基本上是使用docker部署。而過大的映象體積會影響實施部署效率 xinqing 所以作為開發要想與實施和諧相處 bubeipeng 可以優化一下映象體積。1.減少dockerfile中的指令。如有多個run指令,可以用 符號連線。使用 run apt get updat...