2016-06-08 14 views
5

Ich befolge diese Schritte, um Docker Schwarm Cluster zu erstellen.Docker Swarm Manager kann Schwarm Knoten nicht erkennen

  1. erstellen Cunsol
    $ Docker-Maschine -d virtualbox mh-Schlüsselspeicher
    $ eval "$ (Docker-Maschine env mh-Schlüsselspeicher)"
    $ Docker -d \
    -p ausführen erstellen "8500: 8500" \
    -h "Konsul" \
    progrium/Konsul -server -bootstrap

  2. Schwarm Manager
    $ docker erstellen -machine create -d virtualbox node1
    $ docker laufen -d -p 4000: 4000 swarm manage -H: 4000 --replikation - werben $ (docker-machine ip knoten1): 4000 consul: // $ (docker-machine ip mh-Schlüsselspeicher): 8500

  3. create Schwarm Knoten
    $ docker-Maschine erstellen -d virtualbox Knoten2
    $ Andockfenster laufen -d Schwarm beitreten --advertise = $ (docker-Maschine ip Knoten2): 2375 Konsul : // $ (docker-Maschine ip mh-Schlüsselspeicher): 8500

  4. Login node1
    $ docker-Maschine ssh node1
    $ Docker -H: 4000 info

Aber diese Befehlsausgabe

(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?....

Wie kann ich dieses Problem beheben?
Ich habe bereits node2 überprüft und es läuft gut.

[Update] Ich folge this page und es funktioniert gut. Aber ich möchte immer noch wissen, wie man Schwarmcluster ohne Docker-Maschine aufstellt.

[Update] Ein anderer Ansatz funktioniert auch nicht.

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 Docker info erscheinen mhs-demo1 ip aber Info noch nicht bekannt ..

[Update]
wenn ich eval $ (Docker-Maschine env --swarm node1) Es

zeigen Typ

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?

Es ist so seltsam. Wie kann ich das gleiche Ergebnis wie

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 

mit Schwarm-Anweisung erhalten?

Ich möchte Schwarm-Anweisung verwenden, weil ich nicht Schwarm-Master deklarieren möchte, wenn ich es erstelle.

Antwort

0

Warum verwenden Sie docker-machine nur um einen Knoten zu starten? Sie können docker Maschine verwenden, um Ihren Knoten mit Schwarm bereit zu machen, um zu gehen. Sie können dieses Tutorial https://docs.docker.com/engine/userguide/networking/get-started-overlay/

+0

Ja. Ich kenne diese Methoden. Aber ich möchte nur herausfinden, warum ein anderer Ansatz nicht funktioniert ....... –

0

mit dem Löschen dieser Datei Versuchen Sie wie folgt vor:

sudo rm /etc/docker/key.json 

Dann starten Docker mit:

sudo service docker restart 

An diesem Punkt Docker wird eine neue key.json Datei machen und Dein Meister sollte in der Lage sein, deine Arbeiter zu finden. Dies passiert manchmal, wenn Sie für alle Workerknoten dasselbe Bild verwenden, aber es ist einfach zu beheben.

Verwandte Themen