1、每个容器中只运行一个应用程序,则水平伸缩将变得十分容易。例如,当你需要一个Tomcat容器,可以从现有的容器再扩展出一个,但如果你的这个容器中不仅有Tomcat,还有MySQL等其他应用程序,事情就会变得复杂起来。
2、每个容器中只运行一个应用程序,可以轻松地将其重新用于其他项目或目的,极大增加复用度。
3、每个容器中只运行一个应用程序,出现故障时开发人员能方便地对该故障容器进行问题排查,而不必对整个系统的各个部分进行排查,这也使得其更具有可移植性和可预测性。
4、每个容器中只运行一个应用程序,升级程序时能够将影响范围控制再更小的粒度,极大增加应用程序生命周期管理的灵活性,避免在升级某个服务时中断相同容器中的其他进程。
5、每个容器中只运行一个应用程序,从安全性和隔离性角度来看,能够提供更安全的服务和应用程序间的隔离,以保持强大的安全状态或遵守PCI之类的规定。
话说回来,容器本身的设计,就是希望容器和服务/应用能够具备相同的生命周期。即:一个容器对应一个进程。这样,才能够最好地应用容器编排来管理好容器和服务。