Kürzlich habe ich Ihnen gezeigt, wie Sie CouchDB als eigenständigen NoSQL-Datenbankserver bereitstellen, der Ihnen in kleinen Instanzen gute Dienste leisten kann. Dieses Mal möchte ich Ihnen einen netten Trick zeigen, wie Sie CouchDB als Cluster mit Docker bereitstellen können. Obwohl diese Methode möglicherweise nicht ideal für den Produktionseinsatz ist, ist sie eine großartige Möglichkeit für Entwickler, mit CouchDB in einer Testumgebung zu arbeiten.
Kommen wir ohne weiteres zur Bereitstellung.
Was Sie brauchen
Damit dies funktioniert, benötigen Sie einen Server mit einem Betriebssystem, das Docker unterstützt. Ich werde es mit Ubuntu Server 22.04 demonstrieren, aber Sie können jede beliebige Plattform verwenden, mit der Sie vertraut sind.
Pflichtlektüre für Entwickler
So installieren Sie Docker
Für den unwahrscheinlichen Fall, dass Sie Docker noch nicht installiert haben, gehen Sie wie folgt vor.
Fügen Sie zuerst den offiziellen Docker-GPG-Schlüssel mit dem Befehl hinzu:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Fügen Sie als Nächstes das erforderliche Repository hinzu:
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Installieren Sie die erforderlichen Abhängigkeiten mit:
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release -y
Schließlich können wir die neueste Version der Docker-Engine installieren:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io -y
Fügen Sie Ihren Benutzer mit dem Befehl:
zur Docker-Gruppe hinzu
sudo usermod -aG docker $USER
Machen Sie das System auf die Änderung aufmerksam mit:
newgrp docker
So stellen Sie die CouchDB-Container bereit
Wir werden drei CouchDB-Container bereitstellen, die jeweils einen eindeutigen externen Port verwenden. Die erste verwendet Port 5984 und wird bereitgestellt mit:
docker run -itd -p 5984:5984 -p 5986:5986 --name=couchdb0 -e NODENAME='couchdb-0.local.com' --mount 'source=volume-0,target=/opt/couchdb/data' couchdb:2.3.0
Der zweite Container wird bereitgestellt (unter Verwendung von Port 15984) mit:
docker run -itd -p 15984:5984 -p 15986:5986 --name=couchdb1 -e NODENAME='couchdb-1.local.com' --mount 'source=volume-1,target=/opt/couchdb/data' couchdb:2.3.0
Der letzte Container wird bereitgestellt *unter Verwendung von Port 25984) mit:
docker run -itd -p 25984:5984 -p 25986:5986 --name=couchdb2 -e NODENAME='couchdb-2.local.com' --mount 'source=volume-2,target=/opt/couchdb/data' couchdb:2.3.0
Wenn Sie den Befehl docker ps -a | grep couchdb sollten alle drei Instanzen betriebsbereit sein.
So erstellen Sie den Administrator-Benutzer
Wir müssen jetzt für jeden Container einen Administrator erstellen. Ersetzen Sie PASSWORD in jedem Fall durch ein sicheres Passwort (stellen Sie sicher, dass es für alle gleich ist). Die Befehle dafür lauten:
curl -X PUT http://localhost:5984/_node/[email protected]/_config/admins/admin -d '"PASSWORD"
curl -X PUT http://localhost:15984/_node/[email protected]/_config/admins/admin -d '"PASSWORD"
curl -X PUT http://localhost:25984/_node/[email protected]/_config/admins/admin -d '"PASSWORD"''
Hervorragend. Machen wir weiter.
So erstellen Sie ein Docker-Netzwerk
Im Moment haben die CouchDB-Knoten keine Kenntnis voneinander. Um das zu beheben, müssen wir ein neues Docker-Netzwerk erstellen. Tun Sie dies mit:
docker network create -d bridge --subnet 172.25.0.0/16 isolated_nw
Nachdem unser Netzwerk erstellt wurde, müssen wir nun unsere Container damit verbinden, was mit den folgenden Befehlen geschieht:
docker network connect --alias couchdb-0.local.com isolated_nw couchdb0
docker network connect --alias couchdb-1.local.com isolated_nw couchdb1
docker network connect --alias couchdb-2.local.com isolated_nw couchdb2
Perfekt.
So melden Sie sich bei der Verwaltungskonsole an
Öffnen Sie einen Webbrowser und zeigen Sie ihn auf http://server:5984, wobei SERVER die IP-Adresse des Servers ist, auf dem Docker gehostet wird. Melden Sie sich mit dem Benutzernamen admin und dem Passwort an, das Sie zuvor für den Admin-Benutzer hinzugefügt haben.
Nachdem Sie sich angemeldet haben, klicken Sie auf das Schraubenschlüssel-Symbol im linken Navigationsbereich und dann auf Cluster konfigurieren (Abbildung A ).
Abbildung A
Im resultierenden Fenster (Abbildung B ), müssen Sie die Administratoranmeldeinformationen eingeben und dann einen Knoten zum Cluster hinzufügen.
Abbildung B
Um den ersten Knoten zum Cluster hinzuzufügen, geben Sie couchdb-1.local.com als Remote-Host ein und belassen Sie den Port bei 5984. Klicken Sie anschließend auf Knoten hinzufügen. Machen Sie dasselbe für den zweiten Knoten, indem Sie couchdb-2.local.com als Remote-Host verwenden.
Nachdem Sie beide Knoten hinzugefügt haben, klicken Sie auf Cluster konfigurieren und Sie sollten mit einer Seite belohnt werden, die Sie darüber informiert, dass der Cluster konfiguriert wurde (Abbildung C ).
Abbildung C
Herzlichen Glückwunsch, Sie haben gerade Ihren ersten CouchDB-Cluster mithilfe von Docker bereitgestellt.