Я следую этим шагам, чтобы создать кластер Docker swarm.
Первое: создать Кунсола
docker-machine create -d virtualbox mh-keystore
eval "$(docker-machine env mh-keystore)"
docker run -d \
-p "8500:8500" \
-h "consul" \
progrium/consul -server -bootstrap
Второе: создать менеджера роя
docker-machine create -d virtualbox node1
docker run -d -p 4000:4000 swarm manage -H :4000 --replication -- advertise $(docker-machine ip node1):4000 consul://$(docker-machine ip mh-keystore):8500
Третье: создать узел роя
docker-machine create -d virtualbox node2
docker run -d swarm join --advertise=$(docker-machine ip node2):2375 consul://$(docker-machine ip mh-keystore):8500
Четвертое: вход в node1
docker-machine ssh node1
docker -H :4000 info
Но этот вывод инструкции
(неизвестно): 192.168.99.106:2375(node2 ip)
└ ID:
└ Статус: Pending
└ Контейнеры: 0
└ Зарезервированные процессоры: 0 / 0
└ Зарезервированная память: 0 B / 0 B
└ Ярлыки:
└ Ошибка: не удается подключиться к демону Docker. Работает ли на этом хосте демон docker?....
Как я могу это исправить?
Я уже проверил node2, и он работает нормально.
[Обновление] Я подписан на эту страницу и это работает хорошо. Но я все еще не хочу знать, как настроить рой-кластер без докер-машины.
[Обновление] Другой подход также не работает.
docker-machine create -d virtualbox \
--swarm \
--swarm-discovery="consul://$(docker-machine ip mh-keystore):8500" \
--engine-opt="cluster-store=consul://$(docker-machine ip mh-keystore):8500" \
--engine-opt="cluster-advertise=eth1:2376" \
mhs-demo1
Информация о докере Node1 появляется по IP-адресу mhs-demo1, но информация все еще неизвестна.
[Обновление]
Когда я набираю eval docker-machine env --swarm node1
, отображается
Ошибка при проверке соединения TLS: «узел 1» не является мастером роя. Флаг --swarm предназначен для использования с мастерами роя. Вызывает ли это ошибку? Почему использование инструкции диспетчера роя для настройки не является мастером роя?
Это так странно. Как я могу получить тот же результат, что и
docker-machine create \ -d virtualbox \ --swarm --swarm-master \
--swarm-discovery="consul://$(docker-machine ip mh-keystore):8500" \
--engine-opt="cluster-store=consul://$(docker-machine ip mh-keystore):8500" \
--engine-opt="cluster-advertise=eth1:2376" \
mhs-demo0
используя инструкции роя?
Я хочу использовать инструкцию роя, потому что я не хочу объявлять мастера роя при его создании.