Deployment 对于使用Docker的多个项目,请使用多个VM或具有多个容器的单个主机

Deployment 对于使用Docker的多个项目,请使用多个VM或具有多个容器的单个主机,deployment,docker,ovh,Deployment,Docker,Ovh,假设我有三个应用程序目前托管在Digital Ocean或AWS上。它们中的每一个都至少为数据库使用一个VM,为web应用使用一个或多个VM 现在让我们假设我想在OVH获得一台具有64GB RAM的专用服务器,并使用docker部署这些应用程序。每个项目都有自己的docker compose文件。我正在考虑两种方法: 在服务器上安装VMWare Esxi,为每个项目创建一个VM,并为web和数据库部署docker容器 只需将Ubuntu安装为主机操作系统,并为每个项目使用单独的网络入口点(IP)

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

现在让我们假设我想在OVH获得一台具有64GB RAM的专用服务器,并使用docker部署这些应用程序。每个项目都有自己的docker compose文件。我正在考虑两种方法:

  • 在服务器上安装VMWare Esxi,为每个项目创建一个VM,并为web和数据库部署docker容器
  • 只需将Ubuntu安装为主机操作系统,并为每个项目使用单独的网络入口点(IP)管理所有应用程序的容器
  • 我会浪费太多的服务器资源去做第一选择吗? 如果我选择第二种方法,是否会使我的基础设施过于复杂

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

    谢谢你的帮助

  • 每个应用程序都需要一个完整的虚拟机,包含所有内存共享和I/O内容。您可以将内存膨胀与虚拟盒一起使用(ESXi也应该有这样的功能,可能名称不同)。在每个虚拟机中都包含docker堆栈
  • 如果使用本机操作系统,则只需要docker堆栈一次
  • 您在docker映像中使用什么操作系统?200MB的Ubuntu?还是5MB的阿尔卑斯?如果您选择Alpine作为主机操作系统和/或映像操作系统,您将能够使“容器开销”小得多

    这取决于你的应用需要什么样的系统服务,比如cron、upstart等等。。。应用程序需要多少资源?是基于JVM的应用程序在每个容器中都需要自己的JVM吗?等等

    首先,我会用阿尔卑斯码头工人的照片来计划一个阿尔卑斯山的主人。如果有应用程序确实需要Ubuntu图像,你可以在特定应用程序的图像中使用它

    也看看

  • 每个应用程序都需要一个完整的虚拟机,包含所有内存共享和I/O内容。您可以将内存膨胀与虚拟盒一起使用(ESXi也应该有这样的功能,可能名称不同)。在每个虚拟机中都包含docker堆栈
  • 如果使用本机操作系统,则只需要docker堆栈一次
  • 您在docker映像中使用什么操作系统?200MB的Ubuntu?还是5MB的阿尔卑斯?如果您选择Alpine作为主机操作系统和/或映像操作系统,您将能够使“容器开销”小得多

    这取决于你的应用需要什么样的系统服务,比如cron、upstart等等。。。应用程序需要多少资源?是基于JVM的应用程序在每个容器中都需要自己的JVM吗?等等

    首先,我会用阿尔卑斯码头工人的照片来计划一个阿尔卑斯山的主人。如果有应用程序确实需要Ubuntu图像,你可以在特定应用程序的图像中使用它


    请看一下

    嗨,萨沙,谢谢你的回复。我想我无法安装ubuntu alpine作为主机。我想拥有一个带有UbuntuAlpine映像的Ubuntu主机不会有问题,或者我遗漏了什么?顺便说一句,我将在应用程序容器中运行JRuby,所以是的,它将需要自己的JVM。除此之外,我还需要postgres、nginx和redis容器。如果您不习惯安装/使用alpine,那么可以使用Ubuntu作为主机平台。Alpine是为服务器构建的,所以它可以很好地工作,但与ubuntu当然有区别。特别是,如果你要将你的服务发布到网上,你应该尊重事实,如安全性、你的经验和管理能力等,而不是你所能节省的兆字节。你可以试试阿尔卑斯山,看看你是否需要帮助来建立阿尔卑斯山的图片,让我知道Hi Sascha,谢谢你的回复。我想我无法安装ubuntu alpine作为主机。我想拥有一个带有UbuntuAlpine映像的Ubuntu主机不会有问题,或者我遗漏了什么?顺便说一句,我将在应用程序容器中运行JRuby,所以是的,它将需要自己的JVM。除此之外,我还需要postgres、nginx和redis容器。如果您不习惯安装/使用alpine,那么可以使用Ubuntu作为主机平台。Alpine是为服务器构建的,所以它可以很好地工作,但与ubuntu当然有区别。特别是,如果你要将你的服务发布到网上,你应该尊重事实,如安全性、你的经验和管理能力等,而不是你所能节省的兆字节。你可以试试阿尔卑斯山,看看你是否需要帮助来设置阿尔卑斯山的图片,让我知道