我正在尝试了解如何使用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的基础架构的可视化技术。如果我错了,请纠正我?