我试图了解docker如何用于dockerize多层应用程序。
我的tomcat应用程序需要mongodb,mysql,redis,solr和rabbitmq。我现在和Docker玩了几个星期。我能够安装和使用mongo / mysql容器。但我没有得到如何使用Docker完全发送应用程序。我几乎没有问题。
图像应该如何。我应该有一个安装了所有组件的图像,或者有单独的图像(例如一个用于tomcat,一个用于mongo,一个用于mysql等),并使用docker之外的bash脚本启动这些容器。
什么是一次维护多个容器的docker方式。意思是说我有多个容器(比如mongo,mysql,tomcat等......)需要一起工作来运行我的应用程序,是否有任何内置的处理方式,以便一个命令/脚本执行此操作?
假设我将我的应用程序停靠,我如何管理需要执行的各种例行任务,如增量代码部署,数据库补丁等。目前我们正在使用vagrant,我们还使用fabric和vagrant来完成各种任务。就像流浪者一样我们将fab任务用于所有类型的日常事务,例如代码部署,数据库刷新,添加卷,启动/停止服务等。这样做的对象是什么?
如果由于高CPU等导致VM崩溃,则使用Vagrant主机系统不受影响。但我看到码头正在占用大量的主机资源。我们可以为那个容器等提供不超过一个cpu核心的限制吗??
因为我们使用流浪汉,所以上面的大多数问题都在这种情况下。当我开始使用docker时,我认为docker是一种可视化技术,可以替代我们巨大的基于Vagrant的infra。如果我错了请纠正我?
答案 0 :(得分:1)
我建议你看看docker-compose:
答案 1 :(得分:1)
对于微服务,组合等我不会重新发布。
对于容器资源分配:
Docker运行有各种资源控制选项(使用谷歌cgroups)看到我的要点