Это не имеет значения.Современные инфраструктуры, как правило, не заботятся о накладных расходах при запуске нескольких копий одного и того же сервиса.Поскольку ввод-вывод базы данных часто может быть критической точкой производительности, вам может оказаться более управляемым не делиться базой данных, поэтому вы можете подвергать базы данных более высокой нагрузке на выделенном и / или более крупном оборудовании.
(такжерассмотрите возможность запуска своих баз данных на выделенном оборудовании, а не в Docker: это единственное, что вы должны резервировать, и вы будете обновлять их гораздо реже, чем остальная часть вашего стека приложений, поэтомуих жизненный цикл принципиально отличается от одноразового контейнера Docker. Если вы используете общедоступную облачную службу, которая предлагает управляемую службу базы данных и готова за нее заплатить, это также может быть очень разумным вариантом.)
Что бы вы ни решили, вам почти наверняка нужно сделать все параметры (хост, база данных, имя пользователя, пароль) настраиваемыми , обычно через переменные среды.(Я вижу слишком много вопросов SO, имена хостов которых жестко запрограммированы в исходном коде.) Вы должны иметь возможность развертывать одно и то же изображение с разными параметрами в средах разработки, тестирования и производства, которые обычно имеют разные имена хостов.