Я просто вхожу в Докер. Я хочу разместить существующую инфраструктуру приложения в контейнерах, чтобы обеспечить согласованную и изолированную среду и упростить развертывание.
Моя настройка
Существует несколько сервисов/демонов, которые я запускаю (Redis, ES, PG, NGINX), а также несколько рабочих (нужно поговорить с PG и Redis). У меня есть 3 рубиновых веб-приложения и сервис faye, которым все нужно поговорить с Redis, PG и ES. NGINX нужно будет отменить прокси-сервер для приложений.
Стратегия контейнера
Первое, что я хочу знать, это стратегия, которую вы бы использовали с докером и этими службами.
- Вы бы создали контейнер (например, ubuntu) для каждой службы, а затем запустили их с соответствующими туннелями (-link) в контейнеры?
- Не могли бы вы связать службы на одном контейнере и приложениях на другом?
- или вы создали бы один массивный контейнер?
Dockerfile
Вы могли бы сделать один файл Docker для всех контейнеров или разделить их? то есть Redis-Dockerfile, Web01-Dockerfile и т.д.
Развитие против производства
В разработке Я хочу, чтобы изменения файлов мгновенно обновлялись на контейнерах (т.е. путь, установленный в контейнерах из хоста FS). Точка монтирования может отличаться от разработчика к разработчику. Как бы вы это установили?
В процессе производства я могу либо клонировать репозитории приложений на хост-машине, либо монтировать в виртуальных машинах, или я мог бы клонировать код приложения внутри самого контейнера.
Я знаю флаг -v для монтирования томов, поэтому я бы предположил, что вы можете настроить некоторые переменные среды, чтобы настроить точки монтирования узла.