2016-11-17 4 views
3

Мне нужно создать контейнеры в нескольких хостах. У меня есть файл докеров для каждого контейнера. Я обнаружил, что docker-compose можно использовать для запуска нескольких контейнеров из одного файла yaml. Я должен запускать containerA в HostA, containerB в HostB и т. Д.. Можно ли достичь этого, используя docker-compose? или что является лучшим способом создания контейнера в другом хосте с помощью файла docker.Возможно ли создание контейнера на нескольких хостах с использованием одного файла для компоновки докеров?

ответ

0

Docker-compose - это именно то, что вам нужно. Это инструмент для определения и запуска многоконтейнерных приложений Docker. Хорошей отправной точкой является официальная документация: https://docs.docker.com/compose/gettingstarted/

+1

Это не отвечает на вопрос. – R0MANARMY

1

Ответ отрицательный.

  • Docker compose предназначен для нескольких контейнеров на одном хосте.
  • Docker swarm предназначен для контейнеров (контейнеров) на уровне кластера.

И вы не можете решить, где запускать контейнер, решает только планировщик роевых докеров, но вы можете влиять на него. Проверьте ссылку ниже и сосредоточьтесь на схожести изображения. т. е. вы помещаете определенные изображения только на некоторые узлы и настраиваете планировщик для использования сближения изображения.

  • Фильтры - Какие хосты выбраны
  • Стратегии - ранжирование узлов.

docker filters Вот сценарий создания клана роевых докеров. Играть с пока вы не узнаете сам процесс

id=$(docker run swarm create) 
docker-machine create -d virtualbox --swarm --swarm-master --swarm-discovery token://$id swarm-master 
docker-machine create -d virtualbox --swarm --swarm-discovery token://$id node1 
docker-machine create -d virtualbox --swarm --swarm-discovery token://$id node2 
docker-machine create -d virtualbox --swarm --swarm-discovery token://$id node3 
docker-machine create -d virtualbox --swarm --swarm-discovery token://$id node4 

Вот что случилось:

  1. кластер с одним ведущим и четырьмя узлами создается.
  2. Запустите eval $(docker-machine env --swarm swarm-master), чтобы настроить оболочку.

С этого момента создание и запуск контейнеров, как обычно. running docker ps покажет вам, где работает контейнер.

Смежные вопросы