2017-05-19 3 views
2

Ich habe 3-Knoten-Docker Schwarm-Modus-Cluster (1 Manager und 2 Arbeiter).Docker Swarm: Wie persistente Daten zu behandeln (z. B. Datenbank)

Jetzt möchte ich einen mongodb-Dienst für den Cluster bereitstellen und ich möchte die Datenbank auf einem persistenten Speicher, den ich unter /mnt/data eingehängt habe, speichern. Also im Grunde möchte ich, dass der Service meinen eingebauten Speicher in jedem Container /db/data verwendet.

Wie erreiche ich das?

Ich machte mich vertraut mit docker service create --mount aber

  • Ich bin nicht sicher, ob ich ein volume oder ein bind-mount verwenden sollte?
  • wenn ich volume wählen, wie kann ich Docker sagen, dieses Volumen zu speichern, auf /mnt/data

Zur Kopplung der mongodb Dienste einen bestimmten Knoten (wo die Lagerung montiert ist) Ich habe ein label zu dem entsprechenden Knoten und Start der Andockdienst mit einer Einschränkung.

Antwort

2

müssen Sie binden das Volume mit Mongodb Daten binden. folgende Schritte vor, auf dem Master-Server

  1. Andockfensters Volumen -d lokalen --name mongodata
  2. Andockfensters Service erstellen --network mongo \ --mount type = Volumen, source = mongodata, target =/Daten erstellen/db \ --constraint 'node.role == Manager' \ mongo: 3,2

können Sie in HA-Modus auch einen Blick läuft die DB haben mongodb Cluster in Schwarm bei der Einrichtung. Folgen Sie dem untenstehenden Link https://medium.com/@kalahari/running-a-mongodb-replica-set-on-docker-1-12-swarm-mode-step-by-step-a5f3ba07d06e