Зачем нужен Docker?
Лично я использую:
- Docker для управлением окружением (как для dev так и для prod)
- Docker-distribution для хранения собранных образов контейнеров
- Docker-compose для оркестрации контейнерами на целевой машине (для dev это моя машина, для prod удаленный сервер)
- Docker-machine для управления удаленными машинами (оно само поставит докер куда надо и все такое)
- Docker-swarm (пока не использую, небыло необходимости) - для оркестрации контейнерами в класстере, с failover и тд.. Так как docker-machine можно настроить так что бы тот еще и создавал инстансы (например дроплеты на DO) то можно организовать полностью автоматизированную систему с определенным уровнем отказоустойчивости.
В целом для деплоя можно вообще по SSH не заходить. Дико удобно, особенно когда много проектов и много серверов.