Многопроцессная архитектура в докере - PullRequest
0 голосов
/ 04 марта 2019

Я провел много исследований, но не уверен, правильно ли я понимаю. Рассматриваемая «лучшая практика» для развертывания в докере - иметь один процесс на контейнер.

Пара вопросов по этому поводу:

  1. Смысл в том, что лучше иметь один сервис (например, одно приложение), но это приложение может иметь многопроцессную архитектуру - правильно или неправильно?

  2. Есть ли какое-либо действительное ограничение на это в контейнере?Например, если я «игнорирую» рекомендованные лучшие практики и пытаюсь создать несколько процессов в моем приложении?это потерпит неудачу?

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

Докеры могут запускать столько процессов, сколько позволяет нижележащая cgroup, будет один приоритетный процесс, где stdout - это журнал докера.Если этот процесс остановится, ваш контейнер остановится.Лучше всего делать с контейнером одну вещь, изолированную от других сервисов, кроме тех случаев, когда вы определяете интерфейс.Например, откройте порт для веб-службы.Выполнение одного действия сделает образ докера переносимым и потенциально масштабируемым.

0 голосов
/ 04 марта 2019
  1. [Лучше всего ...] иметь один сервис (например, одно приложение).TRUE

  2. [Если я ...] пытаюсь создать несколько процессов в моем приложении?это потерпит неудачу?НЕТ

  3. Рассматриваемая "лучшая практика" для развертывания в докере - иметь один процесс на контейнер.НЕТ - НЕ ОБЯЗАТЕЛЬНО.

Идея состоит в том, что ваша «служба» должна быть как можно более «урезанной»;полагаясь на ДРУГИЕ «услуги» (возможно, в других контейнерах) по мере необходимости.Бегите в контейнере столько, сколько вам нужно, но не меньше.

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