Какая архитектура Docker лучшая с php, AngularJS, Nginx, Mysql - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть приложение AngularJS / PHP7 / MySQL, и я хочу улучшить его архитектуру.На самом деле, он в настоящее время работает в отдельных контейнерах Docker.

  • Один контейнер для внешнего и внутреннего интерфейса, созданный с помощью Angular JS и PHP соответственно.
  • Один контейнер для базы данных

Я хочу улучшить эту настройку и добиться чего-то вроде этого:

  • Один контейнер с NGINX: порт 80, 443
  • Один контейнер с узлом и мой AngularJSфронт: порт 4200
  • один контейнер apache (или php fpm?) с моим бэкэндом PHP: порт 81
  • один контейнер с MySQL: порт 3306

и другиев целом, хорошо ли разделять переднюю и заднюю части?Для проблем с масштабированием позже?И какие инструменты я буду использовать для решения этих проблем масштабирования?Docker Swarm, Kubernetes?

Я не знаю, хороший ли это подход.Не могли бы вы помочь мне выбрать правильный путь для этого приложения?(Простите за мой английский, я не родной).Спасибо!

1 Ответ

0 голосов
/ 05 февраля 2019

Я думаю, вам нужно сначала начать изучать основы Docker Compose, а не пытаться прямо погрузиться в развертывание.Это поможет вам понять, как развернуть мультиконтейнерные приложения и какова основная идея.В соответствии с вашим сценарием docker-compose позволяет вам определить ваш контейнер NGINX, Angular JS-контейнер (ваш интерфейс), PHP (ваш сервер) и ваш контейнер MySQL DB, порты, на которых они работают, а также определить оверлейные сети, которые вы используете.может отделить контейнер мудрым.См. Ресурсы ниже, в 3-й ссылке вы также можете посетить файл Docker Compose, который определил те же конфигурации, что и ваши текущие настройки, просто обратитесь к нему после ознакомления с основами.

Docker Compose Официальная документация

Как использовать Docker Compose

Образец файла Docker Compose

Когда он входит вDocker Swarm и Kubernetes - это платформы для оркестровки контейнеров.Оба из них позволяют вам запускать контейнеры в кластерах, что означает, что вы можете реплицировать количество контейнеров, в которых работает каждый сервис (сервис здесь означает один из ваших контейнеров, то есть NGINX Container), чтобы сделать их высокодоступными.Представьте, что один из ваших контейнеров NGINX дает сбой, и вы решили запустить 3 контейнера NGINX в вашем кластере Docker Swarm или Kubernetes, и ваши пользователи не будут затронуты, хотя один из ваших контейнеров NGINX не работает, поскольку работают еще два других контейнера.Между Docker Swarm и Kubernetes есть некоторые различия, и вам решать, какой инструмент использовать после того, как вы правильно освоите эти основы.Если вы начинаете с docker-compose, вход в Docker-Swarm будет немного легким.

Разница между Docker Swarm и Kubernetes

Также я добавил ответ, объясняющий использование Docker Swarm в сценарии, подобном вашему, прочитайте его, чтобы вы могли получить представлениео том, как развернуть приложение с помощью Docker Swarm.

Мой ответ на Docker Swarm Пример использования

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...