Direkt zum Inhalt

MongoDB in Docker ausführen: Ein kompletter Leitfaden mit Beispielen

Dieser Leitfaden zeigt dir, wie du MongoDB in Docker laufen lässt, und geht dabei auf schnelle Bereitstellungen über die Befehlszeile und komplette Docker Compose-Konfigurationen ein. Es ist perfekt für Entwickler, die selbst hosten oder lokal experimentieren wollen, ohne gleich in Cloud-Hosting einzusteigen.
Aktualisierte 14. Juli 2025  · 5 Min. Lesezeit

Du willst MongoDB selbst hosten oder einfach mal lokal damit rumspielen? Wenn du nicht direkt mit MongoDB Atlas loslegen willst, gibt's ein paar Möglichkeiten, um anzufangen. Eine davon sind Container mit Docker. 

Docker ist eine gute Wahl für die Verwaltung deiner MongoDB-Instanz, weil es nur eine Minute dauert und einfach zu warten und zwischen Host-Computern zu verschieben ist.

In diesem Artikel schauen wir uns ein paar Ansätze für die Bereitstellung von MongoDB mit Docker an und zeigen dir dabei ein paar Tipps und Tricks.

Was du schon wissen solltest

Um diesem Tutorial folgen zu können, musst du die Docker Engine auf deinem Computer installiert haben. Das kann auf macOS, Windows oder Linux sein. Du brauchst Docker Desktop nicht unbedingt installiert, aber es kann dir die Arbeit mit Docker erleichtern, je nachdem, welches Betriebssystem du benutzt. 

Ich benutze die Docker Engine über Rancher Desktop auf macOS, zum Beispiel, und es funktioniert super.

Um deine Docker-Kenntnisse aufzufrischen, solltest du dir „ Docker for Beginners“ ansehen: Ein praktischer Leitfaden zu Container-, um die Grundlagen nachzuholen.

Herunterladen eines MongoDB-Docker-Images

Bevor du MongoDB in einem Docker-Container starten kannst, musst du erst mal ein Image runterladen, das deinen Anforderungen entspricht. Mach das hier in der Befehlszeile:

docker pull mongodb/mongodb-community-server:latest

Mit dem obigen Befehl wird das offizielle MongoDB Community Edition (CE)-Image mit dem Tag „latest“ runtergeladen. 

Wichtig: mongodb/mongodb-community-server und mongodb/mongodb-enterprise-server sind offizielle Docker-Images, die von MongoDB gepflegt werden. Alle anderen Bilder werden von der externen Community gepflegt und können zu anderen oder unerwarteten Ergebnissen führen.

Nachdem das Image runtergeladen ist, können wir uns die Bereitstellungsoptionen anschauen.

MongoDB als isolierten Container mit dem Befehl „Docker Run“ ausführen

Der schnellste Weg, MongoDB mit Docker einzurichten, ist einfach den Befehl „ docker run “ mit ein paar Konfigurationsparametern zu verwenden. Du kannst zum Beispiel Folgendes über die Befehlszeile machen:

docker run -d -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=nraboy -e MONGO_INITDB_ROOT_PASSWORD=password1234 --name mongodb mongodb/mongodb-community-server:latest

Der obige Befehl nimmt unser Image und stellt es als Container mit dem Namen „MongoDB” bereit. Der Container wird port-gemappt, was bedeutet, dass der Host über den Port „27017“ mit ihm interagieren kann. Die Root-Authentifizierungsinfos sind in diesem Beispiel auch schon eingestellt, aber je nachdem, was du brauchst, kannst du Docker Secrets oder eine andere sichere Methode nutzen, um sensible Infos weiterzugeben.

Im obigen Beispiel werden alle Daten im Container gespeichert. Die MongoDB-Daten, zu denen Datenbanken, Sammlungen und sogar Dokumente gehören, bleiben nur so lange erhalten, wie der jeweilige Container existiert. Für Tests mag das okay sein, aber meistens willst du, dass deine MongoDB-Daten in Docker zuverlässig gespeichert werden. Um das zu machen, solltest du mit dem folgenden Befehl ein Docker-Volume erstellen:

docker volume create mongodb

Um deinem Container zu sagen, dass er dieses Volume verwenden soll, kannst du deinen Bereitstellungsbefehl so ändern, dass er in etwa wie folgt aussieht:

docker run -d -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=nraboy -e MONGO_INITDB_ROOT_PASSWORD=password1234 -v mongodb:/data/db --name mongodb mongodb/mongodb-community-server:latest

Beachte, dass wir diesmal das zu verwendende Volume angeben. Wenn du ein Volume benutzt, kannst du sicher sein, dass deine Daten auch nach dem Beenden oder Aktualisieren deines Containers noch da sind.

Wenn MongoDB in einem Docker-Container läuft, kannst du dich mit einem Tool deiner Wahl über die Verbindungszeichenfolge „ mongodb://nraboy:password1234@localhost:27017 “ verbinden.

MongoDB mit Docker Compose in deinen Stack oder dein Projekt einbinden

Wenn du vorhast, MongoDB für ein bestimmtes Projekt zu nutzen, das auch mit Docker verwaltet wird, ist es wahrscheinlich sinnvoll, MongoDB mit einer Docker Compose-Konfiguration zu verwalten. Diese Konfigurationen werden oft zum Sandboxing deiner Projekte verwendet und oft als Stacks bezeichnet.

Erstell irgendwo auf deinem Computer eine Datei namens „ docker-compose.yml ” mit folgendem Inhalt:

services:
    mongodb:
        image: mongodb/mongodb-community-server:latest
        container_name: mongodb
        restart: unless-stopped
        ports:
            - "27017:27017"
        volumes:
            - mongodb:/data/db
        environment:
            MONGO_INITDB_ROOT_USERNAME: nraboy
            MONGO_INITDB_ROOT_PASSWORD: password1234

volumes:
    mongodb:
        external: true

Die obige Konfiguration nutzt Infos, die wir schon im Befehl singular gesehen haben. Wie bei der anderen Methode wird auch hier davon ausgegangen, dass du bereits ein Volume namens „ mongodb “ erstellt hast, das von Docker verwaltet werden soll. Wenn du das machen musst, gib einfach den folgenden Befehl ein:

docker volume create mongodb

Natürlich kannst du deine Docker-Volumes so verwalten, wie es für dich am besten passt. Ein Volume zu erstellen ist nur eine von vielen Möglichkeiten.

Wenn deine Befehlszeile auf dasselbe Arbeitsverzeichnis wie deine Datei „ docker-compose.yml “ eingestellt ist, gib den folgenden Befehl ein:

docker compose up -d

Der obige Befehl startet deinen Stack im getrennten Modus. 

Du kannst überprüfen, ob alles funktioniert, indem du versuchst, mit einem Tool wie MongoDB Compass, einem der Sprachtreiber wie Node.js oder über die MongoDB Shell eine Verbindung zu deiner Instanz herzustellen. 

Wenn du dem Beispiel genau folgst, sieht deine Verbindungszeichenfolge so aus: mongodb://nraboy:password1234@localhost:27017. Je nachdem, wie du die Anleitung befolgt hast, kann sie aber auch anders aussehen.

Um deine MongoDB-Instanz zu beenden, gib das Folgende in der Befehlszeile ein, wobei sich deine YAML-Konfiguration im selben Arbeitsverzeichnis befinden sollte:

docker compose down

Da wir ein externes Volume verwenden, bleibt beim nächsten Start deines Containers alles erhalten.

Fazit

Mit Docker ist es echt einfach, MongoDB in einer selbst gehosteten oder lokalen Umgebung zu nutzen. Du musst dir keine Gedanken über die allgemeinen Betriebssystemeinstellungen oder die Unterschiede zwischen verschiedenen Computern machen. Du wirst jedes Mal das gleiche Erlebnis haben. 

Um einen Schritt weiterzukommen, lohnt es sich, zu lernen, wie man eine Datenbank in MongoDB erstellt.

Werde Dateningenieur

Werde ein Dateningenieur durch fortgeschrittenes Python-Lernen
Kostenloses Lernen beginnen

Häufig gestellte Fragen

Kann ich mit Docker mehrere MongoDB-Container gleichzeitig laufen lassen?

Ja, du kannst mehrere MongoDB-Container gleichzeitig laufen lassen, solange jeder auf einen anderen Port verweist oder auf einem separaten Docker-Netzwerk läuft, um Konflikte zu vermeiden.

Wie kann ich die Daten eines MongoDB-Containers in Docker sichern?

Um Daten zu sichern, kannst du mit „ docker cp “ Dateien aus dem Volume extrahieren oder innerhalb des Containers „ mongodump “ verwenden. Persistent Volumes helfen auch dabei, Daten zwischen Sitzungen zu speichern.

Ist es okay, MongoDB-Passwörter in der Docker Compose-Datei zu speichern?

Das ist nicht so toll. Verwende stattdessen Docker Secrets oder Umgebungsvariablendateien (.env), die nicht in der Versionskontrolle sind, um sensible Zugangsdaten sicher zu verwalten.

Läuft MongoDB gut in Docker unter Windows?

Ja, MongoDB läuft in Docker unter Windows, macOS und Linux problemlos, vor allem wenn du WSL 2 oder Docker Desktop für Windows benutzt, um die Kompatibilität sicherzustellen.

Kann ich MongoDB mit Docker in der Produktion verwenden?

Ja, aber es ist besser, erst mal alles richtig einzurichten, wie Netzwerk, Speicher, Authentifizierung und Backups, bevor du Dockerized MongoDB in einer Produktionsumgebung benutzt.

Wie verbinde ich mich in Docker von einem anderen Container aus mit MongoDB?

Benutze Docker Compose und gib den MongoDB-Container mit seinem Servicenamen als Hostnamen an. Das macht die Kommunikation zwischen Diensten im selben Netzwerk möglich.

Muss ich MongoDB lokal installieren, wenn ich Docker benutze?

Nein. Docker läuft MongoDB in einer Container-Umgebung, sodass du MongoDB nicht direkt auf deinem Host-Rechner installieren musst.

Kann ich MongoDB Compass mit einer Docker-basierten MongoDB-Instanz verwenden?

Auf jeden Fall. Verwende einfach die richtige Verbindungszeichenfolge (z. B. mongodb://user:pass@localhost:27017), um von MongoDB Compass eine Verbindung zu deinem lokalen Container herzustellen.

Wie kann ich die Leistung von MongoDB in Docker checken?

Du kannst Tools wie mongostat, mongotop oder externe Überwachungslösungen wie Prometheus und Grafana für die Leistungsüberwachung in Docker integrieren.

Bleiben meine MongoDB-Daten in einem Docker-Container erhalten?

Solange du das Container-Verzeichnis einem Laufwerk auf deinem Host-Computer zugeordnet hast, sollten die Daten zwischen Updates und Starts ohne Probleme erhalten bleiben.

Soll ich Docker oder MongoDB Atlas nehmen?

In den meisten Fällen ist es wegen der verfügbaren Funktionen, der Preise und der einfachen Nutzung besser, MongoDB Atlas zu verwenden, aber MongoDB über Docker ist auch eine gute Option.

Muss ich Docker Desktop mit MongoDB verwenden?

Docker Desktop macht die Arbeit mit Docker meistens einfacher, ist aber nicht unbedingt nötig. Die meisten Linux-Distributionen haben die Docker Engine schon drauf, und andere Schnittstellen wie Rancher Desktop funktionieren auch.


Nic Raboy's photo
Author
Nic Raboy

Nic Raboy ist Developer Relations Lead bei MongoDB. Er leitet ein Team von Python-, Java-, C#- und PHP-Entwicklern, die großartige Inhalte erstellen, um Entwicklern zu helfen, MongoDB erfolgreich in ihre Projekte einzubinden. Er hat Erfahrung mit Golang und JavaScript und schreibt oft über seine Entwicklungsabenteuer.

Themen

Lerne mit diesen Kursen mehr über MongoDB!

Kurs

Introduction to MongoDB in Python

3 Std.
22.2K
Learn to manipulate and analyze flexibly structured data with MongoDB.
Siehe DetailsRight Arrow
Kurs starten
Mehr anzeigenRight Arrow
Verwandt

Der Blog

Die 50 besten AWS-Interview-Fragen und Antworten für 2025

Ein kompletter Leitfaden zur Erkundung der grundlegenden, mittleren und fortgeschrittenen AWS-Interviewfragen, zusammen mit Fragen, die auf realen Situationen basieren.
Zoumana Keita 's photo

Zoumana Keita

15 Min.

Der Blog

Lehrer/innen und Schüler/innen erhalten das Premium DataCamp kostenlos für ihre gesamte akademische Laufbahn

Keine Hacks, keine Tricks. Schüler/innen und Lehrer/innen, lest weiter, um zu erfahren, wie ihr die Datenerziehung, die euch zusteht, kostenlos bekommen könnt.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

4 Min.

Lernprogramm

Python Switch Case Statement: Ein Leitfaden für Anfänger

Erforsche Pythons match-case: eine Anleitung zu seiner Syntax, Anwendungen in Data Science und ML sowie eine vergleichende Analyse mit dem traditionellen switch-case.
Matt Crabtree's photo

Matt Crabtree

Lernprogramm

Python-Methode list() mit Beispielen erklärt

Lerne, wie du mit der Python-Funktion index() die Position von Elementen in Listen findest.
Sejal Jaiswal's photo

Sejal Jaiswal

Lernprogramm

Python-Anweisungen IF, ELIF und ELSE

In diesem Tutorial lernst du ausschließlich Python if else-Anweisungen kennen.
Sejal Jaiswal's photo

Sejal Jaiswal

Lernprogramm

Python .append() und .extend() Methoden Tutorial

Lerne, wie du mit den Methoden .append() und .extend() Elemente zu einer Liste hinzufügst.
DataCamp Team's photo

DataCamp Team

Mehr anzeigenMehr anzeigen