В
лучших практиках сказано: You may have heard that there should be “one process per container”. While this mantra has good intentions, it is not necessarily true that there should be only one operating system process per container. In addition to the fact that containers can now be spawned with an init process, some programs might spawn additional processes of their own accord. For instance, Celery can spawn multiple worker processes, or Apache might create a process per request. While “one process per container” is frequently a good rule of thumb, it is not a hard and fast rule. Use your best judgment to keep containers as clean and modular as possible.
Так что смотрите сами.
Я сделал так: Nginx на хост машине. 1 контейнер с mariaDB, другой например с mysql. Они работают на разных портах. Так же есть контейнеры с php-fpm. Один проект - один контейнер php-fpm. Каждый php контейнер видит только файлы своего проекта и работает на своем порту... Контейнеры php линкуются с контейнерами БД.
NGINX хост машины имеет конфиги виртуальных хостов, где и понимает, какой домен на какой контейнер будет проксироваться (порты то разные). NGINX не стал выносить в контейнер, т.к. не вижу смыслы иметь разные версии nginx.