假设我目前在Digital Ocean或AWS上托管了三个应用程序。他们每个人至少将一个VM用于数据库,并将一个或多个VM用于Web应用程序。
现在,让我们说我想在OVH上获得一台专用服务器,具有64GB的RAM,并使用docker部署这些应用程序。每个项目都有自己的docker-compose文件。我正在考虑这样做的两种方式:
我会浪费太多的服务器资源作为首选吗?
我是否会因为第二遍而使基础架构过于复杂?
我知道两者都是有效的选择,但是哪种方法更好/建议呢?
谢谢您的帮助!
最佳答案
您在docker镜像中使用什么操作系统? 200MB的Ubuntu?还是5MB的Alpine?如果您选择Alpine作为主机操作系统和/或镜像操作系统,则可以使“容器开销”小得多
这取决于您的应用程序需要哪些系统服务,例如cron,upstart等……该应用程序需要多少资源?是否是基于JVM的应用程序,每个容器中都需要一个自己的JVM?等等...
首先,我会计划一个带有Alpine docker 镜像的Alpine主机。如果某些应用确实需要Ubuntu镜像,则可以在该特定应用的镜像中使用它。
也看看Docker vs. VM
关于deployment - 对于使用Docker的多个项目,请在具有多个容器的单个主机上使用多个VM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35497443/