Запуск контейнеров через docker-compose на разных хостах

Подскажите новичку в докерах, можно ли с помощью docker-compose запустить кластер, компоненты которого находятся на разных серверах? Например, сontainer1 на хосте host1, container2 на host2 и container3 на host3, а запускаем всё с host1. Можно ли это как-то вместе прописать в одном docker-compose.yml?

Гугл выдает инфу по тому, как запустить удаленно с использованием DOCKER_HOST, но там момент в том, что все контейнеры будут собраны на указанном удаленном хосте, насколько я понял.

А если так нельзя и надо запускать отдельно, то тогда вопрос, как их правильно вместе в кластер объединить тогда?


Ответы (1 шт):

Автор решения: x'ES

Неплохая сжатая вводная статья по теме Swarm: https://dker.ru/docs/docker-compose/using-compose-with-swarm/

В частности,

# Schedule containers on a specific node
environment:
  - "constraint:node==node-1"

# Schedule containers on a node that has the 'storage' label set to 'ssd'
environment:
  - "constraint:storage==ssd"

# Schedule containers where the 'redis' image is already pulled
environment:
  - "affinity:image==redis"
→ Ссылка