Задать вопрос
rshaibakov
@rshaibakov
Web-разработчик

Как должен выглядеть процесс работы с Docker?

После длительных и постоянных мучений в ручном развертывании приложений на сервера для тестов и продакшена, у меня на работе появилось желание в автоматизации этого процесса.
Я обычный разработчик и с DevOps связан косвенно. Опыта в этом немного, а отдельного специалиста у нас для этого нет. Поэтому приходиться брать все в свои руки.
Сейчас у нас есть несколько приватных проектов, состоящие из бэкенда и фронтенда. По масштабу проекты не большие. Бэкенд создан на стеке NodeJS + MongoDB + ElasticSearch + Redis.

Что бы автоматизировать процесс развертывания, начал изучать Docker. Но столкнулся с некоторым непониманием как все должно работать. В основном все материалы в сети отвечают на вопрос: Что такое Docker? И лишь малая часть отвечает на вопрос: Как с ним работать? И даже в них все процессы описываются поверхностно.

Я разобрался с Docker клиентом и поднял docker-machine. Понял как устанавливать образы с Docker Hub и запускать контейнеры. А дальше все... Тупик.
Возникло много вопросов, что делать дальше?
Как мне создать свой контейнер состоящий из образов NodeJs, MongoDB, ElasticSearch, Redis?
Где это все хранить?
Как мне расшарить папки проектов для Docker?
Как мне это интегрировать с CI и CD?
Я запутался. Возникают мысли, а нужно ли мне это? Может все таки по старинке деплоить через FTP?

В общем прошу помощи разобраться в том, как должен быть построен процесс развертывания проектов на Docker?
Или поделиться материалами, где на практике показано что и как нужно делать.
  • Вопрос задан
  • 11126 просмотров
Подписаться 50 Оценить 6 комментариев
Ответ пользователя copyhold К ответам на вопрос (6)
copyhold
@copyhold
По моему скромному мнению...
не должно быть одного контейнера который содержит все - и базу и ноде и еластик. Это должны быть отдельные контейнеры, которые соединяются через расшаренные свои адреса и порты.
Поскольку контейнеров несколько , и управлять этим сложно , применять Docker compose, который как раз и описывает это все хозяйство.
Там же описывать внешние папки монтируемые к контейнеру. Или есть еще какие то Docker Storage ( не пробовал )
То есть , код всё равно придётся заливать на сервер и после растартовать контейнер/ы.
Ответ написан