0

我想找出最有效的方式(內存和空間)來運行復雜的依賴關係的多個 服務。Docker:每個服務都有一個共享映像或單獨映像?

假設,我們有3個服務項目:

  • 服務S1只使用庫A和B
  • 服務S2只使用庫B和C
  • 服務S3只使用庫A和C

因此,如果您爲每個這些單獨的圖像,你最終會採用這種結構:

  • S1
    • 高山層
    • 甲乙庫
  • S2
    • 高山層
    • B和C庫
  • S3 個
    • 高山層
    • A和C庫

庫層不共享任何文件(雖然實際份額庫)。

分享資源的最佳策略是什麼?所有3種服務都可以使用一張圖像嗎? (存儲庫A,B,C中的一個圖像層)

UPD
我們一臺機器上運行的所有服務,而不是一個羣集上
UPD 2
下面是一個example(擾流板:圖層不共享)

回答

0

如果您正在遵循面向服務的體系結構,那麼每個服務都應該有自己的圖像。 Docker鏡像很便宜,但如果你有1張龐大的鏡像並在所有服務中使用,那就不太理想。

另外,如果你想升級服務特定的庫,那麼你不會有其他服務的依賴關係。

+0

我說的是效率,而不是建築風格。 「不理想」是什麼意思?我明白,Docker映像應儘可能小,但在這裏我想盡可能少地使用空間和內存。 當然,如果我們在集羣上運行我們的服務,效率不高,因爲我們必須存儲我們甚至不使用的圖層副本。 – grihabor