Возможно ли иметь один образ докера для уже существующего приложения с несколькими зависимостями - PullRequest
0 голосов
/ 01 мая 2019

Я новичок в Docker и хочу научиться работать с реальными задачами.

У меня есть приложение, размещенное на IIS и имеющее зависимости от SQL Express и SOLR.

Я хочу понять следующее:

  1. Возможно ли иметь всю мою настройку, включая включение IIS, SQL, SOLR и мое приложение в одном контейнере?
  2. Если пункт 1 выполним, как мне начать с него?

Извините, если мои вопросы основны.

1 Ответ

1 голос
/ 01 мая 2019

Это возможно, просто не очень хорошая практика. Вы хотите изолировать программный стек для улучшения управляемости (проще развертывания обновлений), модульности (вы можете повторно использовать определенный компонент в другом проекте и даже иметь несколько проектов, повторно использующих один и тот же образ) и безопасности (уязвимость программного обеспечения в компоненте стек вряд ли сможет достичь другого компонента).

Итак, вместо того, чтобы собирать все вместе в одно изображение, я рекомендую использовать Docker Compose , чтобы иметь несколько изображений для каждого компонента стека (вы можете даже извлекать общие, современные изображения из Docker Hub ) и соберите их из файла Compose, чтобы с помощью одной команды вы могли запустить все компоненты, необходимые для работы вашего приложения.

При этом вполне возможно объединить весь стек в один и тот же Dockerfile, но это будет важный беспорядок. Вам понадобится Dockerfile, который устанавливает все необходимое программное обеспечение, что сделает его громоздким и сложным в обслуживании. Если вы действительно готовы к этому, вам придется начать с базового образа ОС (возможно, Windows Server Core IIS ) и начать установку всего остального программного обеспечения вручную. Если есть файлы Docker для других компонентов, которые вам нужно установить, и они используют один и тот же базовый образ или совместимый образ, вы можете просто скопировать и вставить содержимое в ваш файл Dockerfile, за счет указанной управляемости.

Кроме того, вам определенно следует использовать тома для обеспечения безопасности ваших данных, особенно если вы используете этот монолитный подход, поскольку в противном случае вы рискуете потерять данные из базы данных.

TL; DR: да, вы можете, но вы действительно не хотите этого, поскольку есть гораздо лучшие альтернативы, которые почти столь же сложны.

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