设计应用程序基础架构时使用Docker的架构,最佳做法是为每个“服务”创建一个容器,还是为“服务”中的每个进程创建多个容器?</ strong>
例如,使用Nginx,PHP-FPM,Redis,MySQL和ElasticSearch的分布式PHP应用程序。
服务容器:
处理容器:
从我的角度来看,使用“服务”容器方法似乎更易于维护,因为管理每个流程的许多谨慎的容器可能会变得很麻烦。
答案 0 :(得分:1)
容器都是关于隔离(隔离文件系统,CPU,内存) 这还包括隔离进程(每个容器一个)。
每个容器的一个进程在发生故障时更容易调试(反对连接到具有大量进程和不同日志运行的巨大容器)。
升级/回滚路径更容易(您只需要为每个要更改的进程停止/重新启动一个容器)。
另外,每当您运行多个进程时,您必须使用专门处理这些进程停止方式的图像:请参阅&#34; PID 1 zombie reaping issue&#34;。