最适合使用docker容器的mongodb节点应用程序? 节点和mongodb都在同一个docker容器中,还是具有互连的nodeApp和mongodb的单独容器?
我尝试了两种方法,并且两种方法都对我有用。对于第一种情况,我拍摄了基于ubuntu的映像,并使用Dockerfile安装了node和mongodb,并启动了在同一容器中同时具有两个环境的容器。对于第二种情况,我使用了node和mongodb基本映像,并作为单独的容器运行。但是我应该选择哪种方法感到困惑?
答案 0 :(得分:1)
考虑可伸缩性。最好为Node和MongoDB使用单独的容器。
它为您提供了灵活性。如果您只想将MongoDB容器迁移到其他实例或服务器。
答案 1 :(得分:1)
在单独的容器中使用它们的方法为您提供了多个优点,第一个优点是可以彼此独立地缩放它们。
此外,由于它们只需要一组非常特定的依赖项,因此还可以使您使用更轻量级的图像。
它还将使您能够为将来创建一个更加灵活的环境,即,如果您想添加更多仅依赖于其中一个容器的容器,或者通过其他方式减少与容器之间的交互次数,组件。如果两个容器都在同一个容器中,则不可能仅允许另一个容器仅访问MongoDB。或者,如果您扩展Node应用程序,则使其仅连接到另一个后端容器,而不必将该后端服务器与mongo耦合。
TLDR 将这种方法与两个单独的容器一起使用,这就是docker的意思,它提供了最大的灵活性