2016-06-08 4 views
5

Я выполняю следующие шаги, чтобы создать кластер кланов Docker.Docker swarm manager не может распознать узлы рой

  1. создать Cunsol
    $ Докер-машина создать -d VirtualBox тк-хранилищу
    $ Eval "$ (докер-машина окр тк-хранилищу)"
    $ Docker запустить -d \
    -p "8500: 8500" \
    -h "консул" \
    progrium/консулом -server -bootstrap

  2. создать менеджеру Swarm
    $ докер -machine create -d virtualbox node1
    $ docker run -d -p 4000: 4000 swarm manage -H: 4000 --replication - advert $ (docker-machine ip node1): 4000 consul: // $ (докер-машина IP тк-хранилища ключей): 8500

  3. создают роя узел
    $ Докер-машина создать -d VirtualBox nODE2
    $ Docker запуска -d стаю присоединиться к --advertise = $ (докер-машина ф node2): 2375 консулом : // $ (докер-машина IP тк-хранилище ключей): 8500

  4. Войти node1
    $ докер-машина SSH node1
    $ Докер -H: 4000 Информация

Но этот выход инструкция

(unknown): 192.168.99.106:2375(node2 ip)
└ ID:
└ Status: Pending
└ Containers: 0
└ Reserved CPUs: 0/0
└ Reserved Memory: 0 B/0 B
└ Labels:
└ Error: Cannot connect to the Docker daemon. Is the docker daemon running on this host?....

Как я могу это исправить?
У меня уже проверен узел2, и он работает хорошо.

[Обновить] Я следую this page, и он хорошо работает. Но я до сих пор не знаю, как настроить ройный кластер без докер-машины.

[Обновить] Другой подход также не работает.

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 Информация докер появляются MHS-DEMO1 IP, но информация до сих пор неизвестно ..

[Update]
при вводе Eval $ (докер-машина окр --swarm NODE1) Это показывает

Error checking TLS connection: "node1" is not a swarm master. The --swarm flag is intended for use with swarm masters Does this cause error ? Why using swarm manager instruction to set up is not swarm master?

Это так странно. Как я могу получить тот же результат, что и

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 

используя инструкцию по рою?

Я хочу использовать инструкцию рой, потому что я не хочу объявлять мастера рой, когда я его создаю.

ответ

0

Почему вы используете докер-машину только для запуска узла? Вы можете использовать докер-машину для настройки вашего узла с готовностью к запуску. Вы можете читать этот учебник https://docs.docker.com/engine/userguide/networking/get-started-overlay/

+0

Да. Я знаю эти методы. Но я просто хочу понять, почему другой подход не работает ....... –

0

Попробуйте удалить этот файл:

sudo rm /etc/docker/key.json 

Затем перезапустите докер с:

sudo service docker restart 

На данный момент докер создаст новый файл key.json и ваш мастер должен иметь возможность найти ваших работников. Это случается иногда, когда вы используете одно и то же изображение для всех своих рабочих узлов, но это простое исправление.

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

  • Нет связанных вопросов^_^