Docker如何用于多层应用程序?

Docker如何用于多层应用程序?,docker,Docker,我试图理解如何使用docker对多层应用程序进行dockerize 我的tomcat应用程序需要mongodb、mysql、redis、solr和rabbitmq。我现在和Docker一起玩了几个星期。我能够安装和使用mongo/mysql容器。但我不明白如何使用Docker完全发布应用程序。我有几个问题 图像应该是怎样的。我应该有一个安装了所有组件的映像,或者有单独的映像(比如一个用于tomcat、一个用于mongo、一个用于mysql等),并在docker之外使用bash脚本启动这些容器 d

我试图理解如何使用docker对多层应用程序进行dockerize

我的tomcat应用程序需要mongodb、mysql、redis、solr和rabbitmq。我现在和Docker一起玩了几个星期。我能够安装和使用mongo/mysql容器。但我不明白如何使用Docker完全发布应用程序。我有几个问题

图像应该是怎样的。我应该有一个安装了所有组件的映像,或者有单独的映像(比如一个用于tomcat、一个用于mongo、一个用于mysql等),并在docker之外使用bash脚本启动这些容器

docker一次维护多个容器的方法是什么。也就是说,如果我有多个容器(如mongo、mysql、tomcat等),需要一起工作才能运行我的应用程序,那么有没有内置的方法来处理这个问题,以便一个命令/脚本就可以完成这项工作

假设我将我的应用程序dockerize,我如何管理需要执行的各种例行任务,如增量代码部署、数据库修补程序等。目前,我们使用vagrant,我们还将fabric与vagrant一起用于各种任务。例如,在vagrant up之后,我们使用fab任务进行所有例行任务,如代码部署,数据库刷新、添加卷、启动/停止服务等。docker的做法是什么

如果虚拟机因高CPU等原因崩溃,则使用Vagrant。主机系统不受影响。但我看到docker正在消耗大量主机资源。我们能不能对这个容器设置限制,比如不超过一个cpu核等等

因为我们使用“流浪者”,所以上面的大多数问题都是在这种情况下提出的。从docker开始时,我认为docker是一种可视化技术,可以替代我们庞大的基于流浪者的infra。如果我错了,请纠正我

我建议您看看:

  • 您将能够定义应用程序的体系结构
  • 然后,您可以轻松地构建并运行它(只需一个命令)
  • dev和prod的设置基本相同

对于微服务、合成等,我将不在此赘述

对于containet资源分配:

Docker run有各种资源控制选项(使用google cgroups),请参见此处的要点


谢谢!我会调查的,谢谢!我会调查的。