Virtualization

我應該將應用程序拆分為多個連結的 Docker 容器還是將它們合併為一個?

  • July 4, 2016

背景

我目前正在建構一個我想部署到 Docker 容器的應用程序。

容器將在我的伺服器上執行。我希望能夠在同一台伺服器上執行其他應用程序,而不會增加執行的 Docker 映像的數量。

截至目前,不同的零件/容器是:

  • Nginx(反向代理,靜態資源)
  • 節點(應用程序前端)
  • 節點(應用後端/API)
  • 蒙戈(數據庫)

想法

我的總體想法是每個不同的部分都應該作為一個容器執行。我擔心的是,如果我要在同一台機器上執行另一個應用程序,我最終會用大量無法處理的連結圖像來膨脹它。

這可以通過為每個應用程序製作一個圖像來解決。這樣上述服務將成為一個圖像的一部分。這是否首先與 Docker 的整體安全性或目的相衝突?

澄清

在一個 Docker 鏡像中包含多個服務是否與 Docker 的目的相衝突?

從一個鏡像執行服務時,容器的整體安全優勢是否會被取消?

Docker 自己清楚地說明了這一點:您應該為每個容器執行一個程序

但是,他們處理連結容器的工具還有很多不足之處。他們確實提供了 docker-compose(以前稱為 fig),但我的開發人員報告說它很挑剔,偶爾會失去鍊接容器的跟踪。它也不能很好地擴展,實際上只適用於非常小的項目。

現在我認為最好的解決方案是Kubernetes,一個Google項目。Kubernetes 也是最新版本的Openshift Origin、PaaS 平台以及 Google Container Engine 的基礎,現在可能還有其他東西。如果您使用 Kubernetes,您將能夠輕鬆地部署到此類平台。

引用自:https://serverfault.com/questions/739474