0

我很抱歉,如果我的問題太基本了,但我剛開始學習docker,並且有一些概念對我來說並不清楚。Dockerize應用程序或機器?

我認爲docker是一個功能齊全的虛擬機,因此我想將一組服務轉換爲一個容器。然後我開始閱讀關於「dockerizing」應用程序(例如postgresql),並且我瞭解到Docker file can only have one default instruction, when executing a container。我讀到可以使用supervisor來協調多個執行指令,但是我開始想知道這是否是最好的方法,還是傾向於microservices architecture

爲了說明我的觀點,我想描述一下我的用例。我想創建一個提供tomcat(通過servlet部署一些服務)和postgreSQL數據庫的環境。理想情況下,我希望服務(和數據庫)在同一個主機上運行(在不同的端口上)。

爲Tomcat創建一個容器,爲數據庫創建一個容器是最佳做法,還是將它們放在同一容器中更好?

如果我創建兩個不同的容器,我應該使用哪個框架來編排它們?它是否撥給了這個任務Docker compose

+1

你應該閱讀http://stackoverflow.com/questions/16047306/how-is-docker-different-from-a-normal-virtual-machine?rq=1 – user2915097

回答

3

1)

我覺得泊塢窗作爲一個全功能的虛擬機,所以我覺得一個轉型服務器一組服務,放入容器中。

否否否!它不是虛擬機

只運行一個每個集裝箱

過程幾乎在所有的情況下,你應該只在一個容器中運行的一個進程。將應用程序解耦爲多個容器使得橫向擴展和重用容器變得更容易。如果該服務依賴於其他服務,則使用容器鏈接。

閱讀的最佳實踐編寫Dockerfiles https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/

2)

如果我創建了兩個不同的容器,我應該使用哪個軟件來協調呢? Docker是否適合完成這項任務?

您需要先從docker-compose開始。當你更熟悉它時,你會讓你自己做出有根據的決定。

相關問題