Einführung
MongoDB ist eine praktische NoSQL-Datenbanklösung. Es verwendet keine feste Datenstruktur, wodurch es skalierbar und ideal für die Verwaltung dynamischer Workloads ist. MongoDB eignet sich gut für verteilte Umgebungen wie Docker-Container.
Die Verwendung von Docker und einem offiziellen MongoDB-Container-Image kann den Datenbankbereitstellungsprozess erheblich verkürzen und vereinfachen.
Dieses Tutorial zeigt Ihnen, wie Sie eine MongoDB-Instanz in einem Docker-Container bereitstellen .
Voraussetzungen
- Ein Benutzer mit sudo Privilegien
- Zugriff auf eine Befehlszeile
- Eine laufende Docker-Instanz
MongoDB-Image für Docker herunterladen
Befolgen Sie die Schritt-für-Schritt-Anleitung unten, um das neueste offizielle MongoDB-Image für Docker herunterzuladen.
- Ihr Docker-Dienst muss aktiv sein und ausgeführt werden. Sie können den aktuellen Status schnell überprüfen, indem Sie den folgenden Befehl in Ihr Terminal eingeben:
sudo service docker status
In diesem Beispiel ist der Docker-Dienst aktiv und wird ausgeführt.
- Fahren Sie fort, das neueste offizielle Docker-Image für die MongoDB-Datenbank herunterzuladen:
sudo docker pull mongo
Das Bild zeigt an, dass das System den latest
verwendet hat Tag standardmäßig.
Um eine bestimmte Version von MongoDB herunterzuladen, verwenden Sie denselben Befehl, an den das Versions-Tag angehängt ist. Zum Beispiel:
sudo docker pull mongo:4.2.2
- Listen Sie die Images in Ihrem Docker-Repository mit dem folgenden Befehl auf:
sudo docker images
Die Schnittstelle bestätigt, dass das MongoDB-Image jetzt verfügbar ist.
MongoDB-Container bereitstellen
Standardmäßig speichert MongoDB Daten im Verzeichnis /data/db Verzeichnis innerhalb des Docker-Containers. Um dies zu beheben, hängen Sie ein Verzeichnis vom zugrunde liegenden Hostsystem in den Container ein, auf dem die MongoDB-Datenbank ausgeführt wird. Auf diese Weise werden Daten auf Ihrem Hostsystem gespeichert und nicht gelöscht, wenn eine Containerinstanz ausfällt.
- Erstellen Sie ein /mongodata Verzeichnis auf dem Hostsystem:
sudo mkdir -p /mongodata
- Starten Sie den Docker-Container mit
run
Befehl mit dem Mongo-Image. Die Datei /data/db Verzeichnis im Container wird als /mongodata gemountet auf dem Host. Außerdem ändert dieser Befehl den Namen des Containers in mongodb :
sudo docker run -it -v mongodata:/data/db --name mongodb -d mongo
-it
– Bietet eine interaktive Shell für den Docker-Container.
-v
– Verwenden Sie diese Option, um die /mongodata anzuhängen Host-Volume nach /data/db Behältervolumen.
-d
– Startet den Container als Hintergrundprozess.
--name
– Name des Containers.
- Sobald der MongoDB-Server in einem Container ausgeführt wird, überprüfen Sie den Status, indem Sie Folgendes eingeben:
sudo docker ps
Die Standardportnummer ist 27017, wie in der Ausgabe zu sehen ist .
- Optional können Sie den MongoDB-Port explizit angeben:
sudo docker run -it -v mongodata:/data/db -p 27017:27017 --name mongodb -d mongo
- Überprüfen Sie immer das Docker-Protokoll, um die Ereigniskette zu sehen, nachdem Sie Änderungen vorgenommen haben:
sudo docker logs mongodb
Die Protokolle bieten eine Fülle nützlicher Informationen.
Interaktives Docker-Terminal (Bash Shell) starten, um die MongoDB-Datenbank zu verwalten
- Der Container wird derzeit im getrennten Modus ausgeführt . Verbinden Sie sich stattdessen über das interaktive Terminal mit dem Container:
sudo docker exec -it mongodb bash
- Starten Sie die MongoDB-Shell, indem Sie
mongo
eingeben im interaktiven Terminal.
Die MongoDB-Shell wird gestartet und die Eingabeaufforderung ist bereit, Ihre Befehle anzunehmen.
- Anstatt nur
mongo
einzugeben , können Sie zusätzlich einen bestimmten Host und Port definieren, indem Sie Folgendes eingeben:
mongo -host localhost -port 27017
Mit der MongoDB-Shell können Sie jetzt eine Datenbank erstellen, Sammlungen hinzufügen oder einzelne Dokumente verwalten.
So beenden Sie MongoDB und Interactive Shell
Geben Sie exit
ein um die MongoDB-Shell zu verlassen und dann exit
erneut, um die interaktive Shell zu verlassen.
Alternativ können Sie quit()
eingeben oder verwenden Sie Strg-C um die Shell zu verlassen.
MongoDB-Datenbank stoppen und neu starten
Der docker stop
command ist ein kurzer und klarer Befehl, der die Ausführung von Containerinstanzen stoppt:
sudo docker stop mongodb
Überprüfen Sie die Liste der ausgeführten Docker-Container, indem Sie Folgendes eingeben:
sudo docker ps
Container werden mithilfe von docker start
gestartet Befehl:
sudo docker start mongodb
Die Liste der laufenden Container bestätigt nun, dass die MongoDB-Datenbank erneut initiiert wurde:
sudo docker ps