PHP con nginx generalmente se realiza usando php-fpm, que es un proceso separado.
Manteniendo la idea central del acoplador de un proceso (ver el final de la respuesta para más detalles sobre este punto) por contenedor, tiene sentido tener el proceso nginx y el proceso php-fpm en contenedores separados.
Como la comunicación entre nginx y php-fpm surge a través de fastcgi, el contenedor php-fpm también puede estar en un host separado y esto permite utilizar un grupo de contenedores php-fpm detrás de nginx.
Después del muro de comentarios aquí hay un poco más de antecedentes, la documentación de la ventana acoplable tiene un párrafo sobre la idea de que un contenedor debe tener solo una preocupación .
La idea principal de un contenedor de Linux ( lxc ) es ejecutar un proceso en un espacio de nombres aislado en el nivel de la CPU y la memoria, además de agregar un aislamiento en el nivel del sistema de archivos.
La ventaja es que el compromiso de un proceso dentro de este espacio de nombres no permitirá leer la memoria de otros procesos y, como tal, debería evitar otro compromiso en el host.
Mientras hablan de nginx y php-fpm, funcionan en pareja pero cada uno tiene su propia preocupación, nginx hará la parte HTTP, enrutamiento, validación de encabezados, etc. y php-fpm hará la interpretación del código y devolverá la parte html a nginx . Si bien es habitual tener ambos juntos sirviendo una sola aplicación que no es obligatoria.
Dependiendo del contexto, puede ser más fácil tener un contenedor que incluya toda la pila de una aplicación, en una estación de trabajo de desarrollador, por ejemplo. Pero idealmente para uso en producción, trate de mantener la menor interacción dentro del contenedor, ya que separar los procesos en el mismo contenedor con el supervisor trae su parte del problema en términos de proceso zombie y manejo de registros (ejemplo de la historia aquí solo con fines ilustrativos).
Así que finalmente citaré la página acoplable con algo de énfasis:
Si bien "un proceso por contenedor" es con frecuencia una buena regla general, no es una regla difícil y rápida. Use su mejor criterio para mantener los contenedores tan limpios y modulares como sea posible .
No hay una "regla de bala de plata" que se aplique a todo, siempre es un equilibrio entre la complejidad dentro del contenedor y la complejidad que orquesta los contenedores mismos.