Доброе время суток. Все мы знаем что docker клевая штука и она крайне полезна и удобна в использовании, особенно если ты понимаешь что и зачем делаешь.
Я использую docker-compose для запуска того, что мне нужно (т.е. файл yml, далее идет сборка образа и запуск контейнеров на хост машине).
Я бы хотел задать пару вопросов docker-гуру (надеюсь, тут такие водятся) и получить на них вразумительный ответ на русском языке.
Вопрос № 1. Чем docker-compose отличается от использования docker swarm?
Как я понял, существуют утилиты для контроля за swarm кластером, и там тоже можно делать нечто похожее на создание приложений (сервисов) как в docker-compose. Т.е. фактически docker-compose служит для генерации image и запуска контейнеров на хост-машине, тогда как в случае со swarm все это раскидывается по разным хост-машинам? Т.е. docker-swarm кластер это такой большой сетевой docker-compose (как я понял). ?
Вопрос № 2. Предположим на 1 машине у меня docker swarm manager, на другой docker swarm worker, и я уже их соединил в 1 кластер. Правильно ли в таком случае на docker swarm worker'e подключать свое хранилище с image'ами и запускать их через docker swarm manager'e на worker машине? Или это плохая практика. Как вообще на docker worker'ах оказываются image файлы?
Вопрос № 3. Расскажите как вы видите работу балансировщика nginx в связки с сервером (например тот же PHP для примера) в таком ракурсе, что имеется запущенных 25 контейнеров PHP и если 1 упал поднимается новый вместо упавшего. Как вы это видите в контексте DOCKER разумеется?