Docker迁移,使用一个容器管理多个应用服务进程?还是每个服务进程创建一个容器?


思考将产品迁移到容器里边,目前产品包含多个内聚的服务进程,没有并发大规模需求,目前在选择是否每个服务进程使用一个容器? 还是将所有内聚进程放到一个容器里边? 大家有什么好建议。
从Docker建议来看,但服务进程单容器,但这个会导致一个问题,一个应用会关联多个容器,在管理配制方面增加复杂度,我的思考是能否把容器视作虚拟机,将多个内聚的服务进程放在一起。
已邀请:

shlallen - DaoCloud软件工程师,合伙人

赞同来自: wyili88 DockOne jeffsui andylau004


这样做是可以的,但还是不建议。

首先,您提到了Docker单进程模式带来管理配置的复杂化,这一点相信很多人都赞成。

但是如果想把您的系统用一个Docker Container来Dockerize化,也就是用容器来替代虚拟机,那么反过来讲,您的初衷是什么?您关心的Docker比VM有优势的地方在哪里?能想到的点可能是:节约资源,少跑一个OS的资源?启动快捷,水平扩展方便?相信这些都不是那么切中Docker能解决的痛点。当然Docker作为您公司产品的发布,会是一个很好的点。

但是如果使用Docker单进程模式的话,实际上将您的系统进行了一次简单的重构,从单点跨向分布式。复杂化了容器的管理配置,实际上目前有不少开源的内容已经在做这方面的内容了,如fig等;同时带来的其他好处还有:为您的系统的多模块各自提供隔离的运行环境;没有“把鸡蛋都放在一个篮子里”;运维管理方便(相比单VM模式下)。

DockOne - DockOne官方账号

赞同来自: wyili88


微博larrycaiyu回复:这种没有背景只能瞎掰,都可以。老服务,不想大改造,一个就一个呗。有精力能重构,拆分成适合Docker的一个服务一个镜像为好。一步步来,把需要能剥离的先做。随着自己水平的提高和Docker自身的发展,选择可以不一样。

wyili88 - 梦想家

赞同来自:


非常感谢,很有借鉴意义。

雪夜裸奔

赞同来自:


受益匪浅,多谢

要回复问题请先登录注册