CouchDB in Docker einrichten

Ihr wollt CouchDB in Docker aufsetzen, habt aber keine Idee, wo ihr anfangen sollt? Ich habe für euch eine leicht verständliche, Schritt-für-Schritt Anleitung zusammengestellt. Dieser Artikel wird euch dabei helfen, die flexible und skalierbare NoSQL-Datenbank in eurem Docker-Container zu installieren.

Übrigens: das “Couch” in CouchDB steht für “Cluster of Unreliable Commodity Hardware”, was bedeutet, dass CouchDB entwickelt wurde, um auf einer Vielzahl von Maschinen zu laufen, von eurem persönlichen Laptop bis hin zu großen Multi-Server-Setups. CouchDB ist eine NoSQL-Datenbank, die JSON-Dokumente speichert und mit einem einfachen und dennoch leistungsfähigen RESTful HTTP/JSON-API aufwartet.

Installation von Docker

Fangen wir aber erst einmal damit an, Docker zu installieren, falls ihr das noch nicht getan habt. Docker ist ein Tool, das es ermöglicht, Anwendungen in sogenannten Containern zu isolieren. Diese Container ermöglichen es, Anwendungen und ihre Abhängigkeiten zusammen zu verpacken, was die Installation und Konfiguration erheblich vereinfacht.

Mit Docker könnt ihr CouchDB ohne großen Aufwand auf eurem Rechner installieren. Besucht einfach die offizielle CouchDB Docker-Seite, wo ihr den Befehl findet, um das CouchDB-Image herunterzuladen.

Öffnet ein Terminal und gebt diesen Befehl ein:

docker pull couchdb

Das sagt Docker, dass es das CouchDB-Image aus dem Docker Hub herunterladen soll. Es wird immer die neueste stabile Version heruntergeladen, es sei denn, ihr spezifiziert eine bestimmte Version.

CouchDB Image mit docker pull herunterladen
So sieht die Ausgabe aus, wenn ihr das CouchDB Image mit docker pull herunterladet

Sobald das Image heruntergeladen ist, könnt ihr einen neuen Container daraus erstellen und ihn starten. Hier ist der Befehl dazu:

docker run -p 5984:5984 -d -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=password --name my-couchdb couchdb

Lasst uns diesen Befehl kurz durchgehen:

  • run sagt Docker, dass es einen neuen Container erstellen und starten soll.
  • -p 5984:5984 leitet den Port 5984 auf eurem Rechner an den Port 5984 im Container weiter. CouchDB hört standardmäßig auf diesem Port.
  • -d bedeutet, dass Docker den Container im Hintergrund laufen lassen soll.
  • mit COUCHDB_USER und COUCHDB_PASSWORD vergebt ihr einen administrativen Benutzernamen und das dazugehörige Kennwort. Ohne einen administrativen Benutzer starten neuere Versionen nicht
  • --name my-couchdb gibt dem Container den Namen “my-couchdb”. Ihr könnt hier jeden Namen verwenden, den ihr wollt.
  • couchdb ist der Name des Images, aus dem der Container erstellt werden soll.
CouchDB läuft in Docker
CouchDB erscheint in Docker und ist gestartet

Wenn ihr den Befehl erfolgreich ausgeführt habt, sollte CouchDB laufen und bereit sein, Verbindungen auf Port 5984 anzunehmen. Ihr könnt dies überprüfen, indem ihr in eurem Webbrowser zu http://localhost:5984/_utils/ geht. Dort solltet ihr die Fauxton Web-Oberfläche von CouchDB sehen, die euch ermöglicht, mit eurer Datenbank zu interagieren.

Replikation – nichts einfacher als das

Bevor wir tiefer in die Funktionalität eintauchen, sollten wir uns mit einigen Grundlagen vertraut machen. Ein zentraler Aspekt von CouchDB ist das Konzept der Replikation. Dies bedeutet, dass Daten von einer Instanz zu einer anderen kopiert werden können, was hilft, die Datenverfügbarkeit zu verbessern und Datenverlust zu verhindern.

Angebot
Hiluckey Wireless Solar Powerbank 26800mAh Wasserdichtes…*
  • Wireless Ladegerät: Wirklich kabelloses Solarstrom-Ladegerät mit drahtlosem Ausgang unterstützt…
  • 26800mAh Kapazität: Das tragbare Ladegerät in Handy-Größe bietet 8 Aufladungen für das 2000mAh…

Letzte Aktualisierung am 19.06.2024 / Affiliate Links / Bilder von der Amazon Product Advertising API

Das Erstellen einer Replikation ist so einfach wie das Klicken auf ein paar Schaltflächen in der Fauxton Web-Oberfläche. Aber bevor wir das tun, sollten wir eine erstmal eine zweite Instanz aufsetzen. Wie machen wir das? Genau, mit Docker!

Führt einfach diesen Befehl aus, um einen weiteren CouchDB-Container zu starten:

docker run -p 5985:5985 -d --name my-couchdb-2 -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=password couchdb

Dieser Befehl ist fast identisch mit dem vorherigen, aber es gibt ein paar Unterschiede:

  • Wir verwenden -p 5985:5985, um den Port 5985 auf unserem Rechner an den Port 5984 im Container weiterzuleiten. So können wir auf beide Instanzen gleichzeitig zugreifen, ohne dass die Ports in Konflikt geraten.
  • Wir haben den Namen des Containers auf my-couchdb-2 geändert.
  • Auch hier setzen wir die Umgebungsvariablen COUCHDB_USER und COUCHDB_PASSWORD, um einen Administratorbenutzer für CouchDB zu erstellen. Dies ist wichtig für die Replikation, da sie nur zwischen Administratorbenutzern durchgeführt werden kann.

Jetzt, wo wir zwei Instanzen haben, können wir eine Replikation erstellen. Geht dazu in der Fauxton Web-Oberfläche zu Replication, klickt auf New Replication, und füllt die Formulare aus, um die Quelle und das Ziel der Replikation zu spezifizieren. Ihr könnt sogar festlegen, ob die Replikation kontinuierlich sein soll, was bedeutet, dass Änderungen automatisch repliziert werden, sobald sie auftreten.

einrichten einer neuen Replikation in CouchDB
einrichten einer neuen Replikation

Aber lasst uns einen Schritt zurückgehen und überlegen, warum wir das überhaupt tun. Die Antwort ist einfach: Zuverlässigkeit und Verfügbarkeit. Wenn eine eurer CouchDB-Instanzen ausfällt, habt ihr immer noch eine Kopie eurer Daten in der anderen Instanz. Und wenn ihr eure Datenbanklast auf mehrere Server verteilen möchtet, könnt ihr das mit Replikationen leicht tun.

Sicherheit ist wichtig

Da wir nun die Grundlagen abgedeckt und zwei CouchDB-Instanzen mit Replikation laufen haben, tauchen wir in die verschiedenen Anpassungsmöglichkeiten von CouchDB ein. CouchDB ist bekannt für seine hohe Konfigurierbarkeit, und in diesem Abschnitt werden wir uns mit einigen dieser Optionen befassen.

Angebot
Makeblock mBot 2 Programmierbarer Roboter für Kinder, AI…*
  • 【Makeblock mBot 2】 Als MINT-Spielzeug mBot 2drei Stufen: Bauen, Kognition und Kreation. Dieser…
  • 【Mehr Funktionen, mehr Spaß】 Neben den Grundfunktionen wie Linienverfolgung,…

Letzte Aktualisierung am 19.06.2024 / Affiliate Links / Bilder von der Amazon Product Advertising API

Beginnen wir mit den Sicherheitseinstellungen. Wenn ihr CouchDB in einer Produktionsumgebung verwendet, solltet ihr unbedingt die eingebauten Sicherheitsfunktionen nutzen. Wie ihr bereits gesehen habt, könnt ihr einen Administratorbenutzer erstellen, indem ihr die Umgebungsvariablen COUCHDB_USER und COUCHDB_PASSWORD festlegt. Aber das ist nur der Anfang.

In der Fauxton Web-Oberfläche könnt ihr zu Database > _users > Permissions gehen und weitere Benutzer und Rollen hinzufügen. Dies ermöglicht es euch, den Zugriff auf eure Datenbanken auf eine granulare Ebene zu steuern. Ihr könnt zum Beispiel bestimmten Benutzern nur Lesezugriff auf bestimmte Datenbanken gewähren, während andere Benutzer schreiben können. Sicherheit ist kein Witz, und CouchDB gibt euch die Werkzeuge an die Hand, um eure Daten sicher zu halten.

Wenn ihr CouchDB öffentlich im Internet betreibt, solltet ihr auch darüber nachdenken, die Datenbank mit einem nginx Reverse Proxy abzusichern. Hier findet ihr meinen Artikel dazu: CouchDB mit einem nginx Reverse Proxy absichern

Design Dokumente

Ein weiterer wichtiger Aspekt der Konfiguration sind die Design-Dokumente. Design-Dokumente sind spezielle Dokumente, die Funktionen wie MapReduce-Ansichten, Filter und Validatoren enthalten. Mit diesen Funktionen könnt ihr komplexe Datenabfragen ausführen, Daten filtern, die für die Replikation gesendet werden, und sicherstellen, dass nur gültige Daten in eure Datenbank eingegeben werden.

Zum Erstellen eines Design-Dokuments geht ihr in der Fauxton Web-Oberfläche zu Database > Your Database > New Doc. Im erscheinenden Editor könnt ihr euer Design-Dokument nach Belieben anpassen. Ihr könnt sogar JavaScript verwenden, um eure MapReduce-Funktionen, Filter und Validatoren zu schreiben. Dies bietet eine enorme Flexibilität und ermöglicht es euch, CouchDB genau auf eure Bedürfnisse zuzuschneiden.

Ähnliche Beiträge

Beitrag teilen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Cookie Consent Banner von Real Cookie Banner