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

3

我正在尝试了解如何使用Docker来将多层应用程序docker化。

我的Tomcat应用程序需要mongodb、mysql、redis、solr和rabbitmq。我已经使用Docker玩了几个星期了。我能够安装和使用mongo/mysql容器。但是我不知道如何完全使用Docker来运行应用程序。我有几个问题。

镜像应该怎么样?我应该有一个安装了所有组件的镜像,还是有单独的镜像(比如一个用于Tomcat,一个用于Mongo,一个用于MySQL等),并在Docker外部使用bash脚本启动这些容器。

Docker如何同时维护多个容器?也就是说,假设我有多个容器(比如Mongo、MySQL、Tomcat等),它们需要一起工作才能运行我的应用程序,是否有任何内置的方法来处理这个问题,使得一个命令/脚本可以解决这个问题?

假设我将我的应用程序docker化,如何管理各种常规任务,例如增量代码部署、数据库补丁等。目前我们使用Vagrant,我们还使用Fabric与Vagrant一起执行各种任务。例如,在vagrant up之后,我们使用fab任务执行各种例行事项,如代码部署、数据库刷新、添加卷、启动/停止服务等。Docker的做法是什么?

由于我们使用Vagrant,上面大部分问题都是在这个背景下提出的。当开始使用Docker时,我认为Docker是一种可以替代我们庞大的基于Vagrant的基础架构的可视化技术。如果我错了,请纠正我?

2个回答

1

我建议您查看 docker-compose

  • 您将能够定义应用程序的架构
  • 然后,您可以轻松地构建并运行它(只需一个命令)
  • 开发和生产环境设置基本相同

谢谢!我会研究一下这个。 - titogeo

1

谢谢!我会研究一下这个。 - titogeo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接