Выдался свободный день, да и долгие выходные скоро.. короче говоря, решил разобраться с Docker и запаковать в контейнер один свой нон-профит проект на Django 1.11. До этого момента, много чего слышал про контейнеры (в основном на хабре), но всегда как-то без них обходилось и опыта ноль (контора мелкая, хватает устных договорённостей внутри команды по зависимостям, да и машины у всех одинаковые — macOS).
Итак, хотелось бы узнать у практикующих докеров пару нубских вопросов. У меня в наличии есть вот такая структура: VDS на Debian (9.2), готовый проект на Django (1.11.8) + nginx (1.13) + Gunicorn (latest) + PostgreSQL (9.6.3) + Redis (latest) + Celery (latest). А вопросы буду следующие:
0. Изолировать ли всё, вплоть до ОС, если я всё равно буду использовать контейнеры на VDS Debian 9?
1. Кидать ли каждый сервис в разные контейнеры или всё в один?
2. Как в контейнере настраивать и запускать Redis + Celery?
3. Как пулить в контейнер изменения в коде проекта (Django), если он лежит в приватном (платная подписка) репозитории GitHub и использует RSA-ключи для авторизации и синхронизации репозитория с VDS?
4. Нужно ли вообще проект (Django) запихивать в контейнер или можно просто на VDS как обычно хранить?
5. Если нет, то как пользоваться ресурсами из контейнеров внутри Django (БД, Redis, Celery и так далее)?
6. Как настраивать Gunicorn и nginx в контейнере?
Заранее спасибо за толковые ответы, с наступающим!
5. В Docker есть опция link. С этой опцией линкуешь контейнеры и слинкованные контейнеры "знают" друг друга по наименованию (опция name).
docker-compose тоже поддерживает эти опции