对于使用Docker的多个项目,请使用多个VM或具有多个包含的单个主机

时间:2016-02-19 04:40:35

标签: deployment docker ovh

假设我有三个目前在Digital Ocean或AWS托管的应用程序。它们中的每一个都使用至少一个用于数据库的VM和一个或多个用于Web应用程序的VM。

现在让我们说我想在OVH上安装一个64GB内存的专用服务器并使用docker来部署这些应用程序。每个项目都有自己的docker-compose文件。我正在考虑两种方法:

  1. 在服务器上安装VMWare Esxi,为每个项目创建一个VM,并为Web和数据库部署docker容器。
  2. 只需安装Ubuntu作为主机操作系统,并使用每个项目的单独网络入口点(IP)管理所有应用程序的容器。
  3. 我是否会为第一选择浪费太多的服务器资源? 我会通过第二次过度复杂化我的基础设施吗?

    我知道两者都是有效的选择,但更好/建议的方式是什么?

    感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

  1. 将需要为每个应用程序提供一个完整的VM,其中包含所有记忆共享和I / O内容。您可以使用带虚拟盒的内存膨胀(ESXi也应具有此类功能,可能名称不同)。在每个VM中,您都会包含docker堆栈。
  2. 如果您使用本机操作系统,则只需要一次docker stack。
  3. 您在docker镜像中使用了哪些操作系统?一个200MB的Ubuntu?还是一个5MB的高山?如果您选择Alpine作为您的主机操作系统和/或您的图像操作系统,您将能够保持您的容器开销"小得多

    这取决于您的应用需要哪些系统服务,例如cron,暴发户......应用需要多少资源?是基于JVM的应用程序在每个容器中都需要一个自己的JVM吗?等...

    第一手,我会计划一个带有Alpine docker图像的Alpine Host。如果有些应用程序真的需要Ubuntu图像,您可以在特定应用程序的图像中使用它。

    还要查看Docker vs. VM