Обновить
Docker недавно анонсировал новый инструмент под названием Swarm for Docker orchestration.
роиться позволяет вам «присоединиться» к нескольким демонам-докерам: вы сначала создаете рой, запускаете менеджер роя на одной машине и заставляете демонов-докеров «присоединяться» к диспетчеру роя, используя идентификатор роя. Докер-клиент подключается к диспетчеру роя, как если бы это был обычный докер-сервер.
Когда контейнер запускается с Swarm, он автоматически назначается свободному узлу, отвечающему всем определенным ограничениям. Следующий пример взят из сообщения в блоге:
$ docker run -d -P -e constraint:storage=ssd mysql
Одно из поддерживаемых ограничений - это "node"
то, что вы можете привязать контейнер к определенному имени хоста. Рой также разрешает связи между узлами.
Во время тестирования у меня создалось впечатление, что Swarm еще не очень хорошо работает с томами в фиксированном месте (или, по крайней мере, процесс их связывания не очень интуитивно понятен), так что об этом следует помнить.
Swarm сейчас находится в стадии бета-тестирования.
До недавнего времени шаблон Ambassador был единственным встроенным в Docker подходом к обнаружению служб удаленного хоста. Этот шаблон все еще можно использовать, и он не требует каких-либо магических действий, кроме простого Docker, поскольку он состоит из одного или нескольких дополнительных контейнеров, которые действуют как прокси.
Кроме того, есть несколько сторонних расширений, которые делают Docker-совместимым с кластером. Сторонние решения включают:
- Подключение сетевых мостов Docker на двух хостах, легкие и различные решения существуют, но, как правило, с некоторыми оговорками
- Обнаружение на основе DNS, например, с помощью Skydock и SkyDNS
- Инструменты управления Docker, такие как Shipyard и инструменты оркестрации Docker. Подробный список см. В этом вопросе: Как масштабировать контейнеры Docker в производственной среде