2016-10-01 158 views
3

我不確定使用碼頭集裝箱的最佳做法是什麼。當我使用VM(比如說Ubuntu)來運行Web應用程序時,我安裝了運行應用程序所需的所有軟件,例如數據庫,Web服務等,並像獨立的操作系統一樣使用。碼頭集裝箱VS應用集裝箱

但是,Docker可以以不同的方式使用。

鑑於我想運行一個Web應用程序的情況下,我有兩個選項:

  1. 在一個容器上安裝所有軟件;安裝數據庫,Java以及運行所需的所有其他必需軟件(即,就像我將如何使用VM一樣使用)。

  2. 將每個應用程序安裝在單獨的容器上;一個容器中的數據庫,另一個容器上的Web服務,並讓他們相互交談。

選項1)似乎更容易部署全堆疊的應用,但可能難以擴大,如果有包或OS的資源分配給各軟件之間的一些相關性併發症的問題。

選項2)似乎很難部署,但每個容器都可以升級而沒有太多的痛苦。

Docker用戶的常見做法是什麼?

編輯:回答這個也在https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/#run-only-one-process-per-container

回答

4

指出,最好的方法是使用一個單獨的容器爲每個服務(應用程序)。通過這種方式,您可以獨立於其他容器升級/修改每項服務。 Docker對微服務體系結構非常有用。

使用Docker Compose只用一條命令即可運行所有容器:docker-compose up。在Docker Compose中,您可以定義容器之間的依賴關係。所以,他們會自動連接。

如果您想要在單獨的Linux主機上運行每個容器,則可以使用Docker Swarm以便您不必關心網絡連接。