2016-07-26 65 views
0

在我以前的公司中,我們採用了微服務架構,並使用Docker來實現它。我們的Docker鏡像的平均大小爲〜300MB - 〜600MB。然而,我的新公司正在使用Docker,主要用於開發工作流程,平均圖像大小約爲1.5GB - 〜3GB。一些較大的圖像(10GB +)正在進行重構以減少圖像大小。什麼是Docker鏡像大小被認爲是「太大」?

從我看過的所有內容來看,我覺得這些圖片太大了,我們會遇到問題,但團隊的其他成員認爲Docker Engine和Docker Swarm應該能夠毫無問題地處理這些圖片大小。

我的問題: 是否有可接受的Docker圖像的理想範圍,以及我將面臨的嘗試使用GB圖像的工作流程有哪些缺陷(如果有的話)?

回答

-1

碼頭本身可以處理它們沒有問題,我不能說羣集的任何事情。 「多大太大」雖然只有你的團隊才能回答。如果圖像是5GB,其中90%對應用程序很重要,我不會說它臃腫。如果圖像只有300M,但只有10%是應用程序需要的,我會說它膨脹了。

FWIW,根據剛剛「新」你的「新公司」,這可能是最好的,如果你不搖船。

1

在我看來,理想的尺寸只適用於你的確切情況。對於我和我現在的公司,我們沒有大於1GB的圖像。

如果您使用10GB大小的圖像並且沒有任何問題(是否有可能?!),那麼對您來說就沒問題。

作爲問題案例的例子,您可以考慮這樣的問題:「可以等待1-2小時,而我的圖像正在通過互聯網部署到遠程服務器/開發機器嗎?」,很可能這是不好。另一方面,當你沒有面對這樣的問題時,你根本沒有任何問題。
另一個問題是,小圖像啓動幾秒鐘,巨大的啓動幾分鐘。如果您使用它,也可以打破「熱部署」計劃。

這也可能是適當的,以檢查爲什麼你的形象是如此之大,你可以閱讀how layers work。 不久,如果你有2 Dockerfile:
第一:

RUN download something huge that weight 5GB 
RUN remove something huge from above 

第二:

RUN download something huge that weight 5GB &&\ 
    remove something huge from above 

其結果,第二圖像是重量5GB小於第一個,而它們是相同內。

另一個訣竅是從一開始就使用小的基本圖像。只是比較有區別的:

IMAGE NAME  SIZE 
busybox  1 MB 
alpine   3 MB 
debian   125 MB 
ubuntu   188 MB 

儘管Debian和Ubuntu幾乎相同的內徑,這將節省您從開始爲50MB,將需要在今後的較少依賴。

+0

感謝您的回答。然而,我的問題不是「我怎樣才能縮小圖像尺寸」,而是更像是「如果我的圖像儘可能小,而且仍然是3GB,我會遇到什麼問題......?」 – user1873858

相關問題