Php Docker容器的粒度

Php Docker容器的粒度,php,docker,containers,docker-compose,horizontal-scaling,Php,Docker,Containers,Docker Compose,Horizontal Scaling,使用Docker设计应用程序基础架构和体系结构时,最佳做法是为每个“服务”创建一个容器,还是为“服务”中的每个流程创建多个容器? 例如,使用Nginx、PHP-FPM、Redis、MySQL和ElasticSearch的分布式PHP应用程序 服务容器: Nginx+App+PHP-FPM(完整的应用程序作为“服务”容器) 雷迪斯 MySQL 工艺容器: Nginx 应用程序 PHP-FPM 雷迪斯 MySQL 从我的角度来看,使用“服务”容器方法似乎更易于维护,因为为每个进程管理如此多的

使用Docker设计应用程序基础架构和体系结构时,最佳做法是为每个“服务”创建一个容器,还是为“服务”中的每个流程创建多个容器?

例如,使用Nginx、PHP-FPM、Redis、MySQL和ElasticSearch的分布式PHP应用程序

服务容器:

  • Nginx+App+PHP-FPM(完整的应用程序作为“服务”容器)
  • 雷迪斯
  • MySQL
工艺容器:

  • Nginx
  • 应用程序
  • PHP-FPM
  • 雷迪斯
  • MySQL

从我的角度来看,使用“服务”容器方法似乎更易于维护,因为为每个进程管理如此多的独立容器可能会变得麻烦。

容器都是关于隔离的(文件系统、CPU、内存的隔离)。
这还包括进程隔离(每个容器一个)

每个容器一个进程在发生故障时更容易调试(与连接到一个包含大量进程和不同日志运行的大型容器相反)。
升级/回滚路径更简单(每个要更改的进程只停止/重新启动一个容器)


另外,每当您有多个进程在运行时,您必须使用一个专门处理这些进程如何停止的图像:请参阅“”。

我对PHP-FPM不太熟悉,但您的应用程序不会在PHP-FPM进程中运行吗?或者它不是php解释器?可能是