GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

Richten Sie MongoDB auf Docker ein

MongoDB ist eine Open-Source-NoSQL-Datenbank, die JSON-ähnliche Dokumente und Schemata verwendet, die eine schnelle iterative Entwicklung unterstützen. Seine Scale-out-Architektur ist beliebt bei Anwendungsentwicklern, die agile Methoden verwenden, um schnell voranzukommen. Da es in der agilen Community beliebt ist, ist die Verwendung von MongoDB mit Docker ein ausgezeichneter Ansatz für eine kontinuierliche Integration und Entwicklung (CI/CD)-Workflow.

Bevor Sie beginnen

Um die Beispiele in diesem Handbuch zu vervollständigen, richten Sie zuerst ein Linode mit installiertem Docker ein und sichern Sie es. Sie können dies erreichen, indem Sie die Docker Marketplace-App verwenden oder eine manuelle Installation durchführen. Anweisungen für beide Ansätze finden Sie unten.

In diesem Leitfaden wird davon ausgegangen, dass Sie mit der Befehlszeilenschnittstelle vertraut sind (CLI) auf einem Unix-ähnlichen System und dessen Verwendung zum Arbeiten mit Programmen.

Einen Linode mit Docker einrichten

Docker Marketplace-App

Mit der Docker Marketplace App können Sie schnell ein sicheres, aktualisiertes Linode einrichten. Anweisungen finden Sie in unserem Leitfaden zum Bereitstellen von Docker mit Marketplace-Apps. Für die Zwecke dieses Leitfadens empfehlen wir die Bereitstellung der Docker Marketplace-App mit den Docker-Optionen:

  • Der eingeschränkte sudo-Benutzer, der für Linode erstellt werden soll
  • Das Passwort für den eingeschränkten sudo-Benutzer
  • Der eingeschränkte öffentliche sudo-Benutzer-SSH-Schlüssel, der für den Zugriff auf Linode verwendet wird
  • Root-Zugriff über SSH deaktivieren? (ja)

Manuelle Installation

  1. Machen Sie sich mit unserem Leitfaden „Erste Schritte“ vertraut und führen Sie die Schritte zum Aktualisieren Ihres Linode durch.

  2. Füllen Sie die Abschnitte in unserem Abschnitt „Sichern Ihres Servers“ aus, um ein Standardbenutzerkonto zu erstellen, den SSH-Zugriff abzusichern und unnötige Netzwerkdienste zu entfernen.

  3. Installieren Sie Docker auf Ihrem Linode, indem Sie die Schritte in unserer Anleitung zur Installation und Verwendung von Docker unter Ubuntu und Debian befolgen.

Docker-Installation überprüfen

Stellen Sie sicher, dass Docker auf Ihrem Linode installiert ist:

docker --version

Sie können eine Ausgabe ähnlich der folgenden erwarten:

Docker version 20.10.8, build 3967b7d
Hinweis

Dieses Handbuch wurde für Nicht-Root-Benutzer geschrieben. Befehlen, die erhöhte Berechtigungen erfordern, wird das Präfix sudo vorangestellt . Wenn Sie mit sudo nicht vertraut sind Befehl, besuchen Sie unseren Leitfaden für Benutzer und Gruppen.

Alle Konfigurationsdateien sollten mit erhöhten Rechten bearbeitet werden. Denken Sie daran, sudo einzufügen bevor Sie Ihren Texteditor ausführen.

So installieren Sie einen MongoDB-Docker-Container

Docker macht das Erstellen eines MongoDB-Images sehr einfach, da sie eine offiziell gepflegte Version im Docker Hub aufbewahren. So installieren Sie es:

  1. Laden Sie das MongoDB-Image von Docker Hub herunter und installieren Sie es:

    sudo docker pull mongo
    

    Die Ausgabe beim Herunterladen des Bildes sollte wie folgt aussehen:

    Using default tag: latest
    latest: Pulling from library/mongo
    16ec32c2132b: Pull complete
    6335cf672677: Pull complete
    cbc70ccc8ebe: Pull complete
    0d1a3c6bd417: Pull complete
    960f3b9b27d3: Pull complete
    aff995a136b4: Pull complete
    4249be7550a8: Pull complete
    cc105ff5aa3c: Pull complete
    82819807d07a: Pull complete
    81447d2c233f: Pull complete
    Digest: sha256:54d24682d00278f64bf21ff62b7ee62b59dae50f65139831a884b345922b0f8a
    Status: Downloaded newer image for mongo:latest
    docker.io/library/mongo:latest
    Hinweis Dieser Befehl zieht standardmäßig die neueste Version (wie es in der ersten Zeile der Ausgabe steht). Um eine bestimmte Version abzurufen, fügen Sie dem Befehl das Tag für diese Version hinzu. Um beispielsweise MongoDB 4.4.6 zu installieren, geben Sie docker pull mongo:4.4.6 ein .
  2. Stellen Sie sicher, dass das Image installiert wurde:

    sudo docker images
    

    Die Ausgabe sollte so aussehen:

    REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
    mongo        latest    07630e791de3   2 weeks ago   449MB
  3. Erstellen Sie einen Container mit dem mongo Bild im getrennten Modus, sodass es auf Ihrem System immer noch interaktiv ist:

    sudo docker run --name mongo_example -d mongo
    
  4. Stellen Sie sicher, dass der Container ausgeführt wird:

    sudo docker ps
    

    Die Ausgabe sollte so aussehen:

    CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS       NAMES
    1f88d00b9e78   mongo     "docker-entrypoint.s…"   4 seconds ago   Up 4 seconds   27017/tcp   mongo_example

MongoDB läuft jetzt als Docker-Container.

Anmeldung bei MongoDB auf dem Container

  1. Geben Sie Folgendes ein, um die Bash-Eingabeaufforderung innerhalb des Containers zu erhalten:

    sudo docker exec -it mongo_example bash
    
  2. Geben Sie an der Eingabeaufforderung des Containers mongosh ein Schale:

    mongosh
    

Vom mongosh Shell können Sie Abfragen und Operationen direkt mit Ihrer Datenbank testen.

Hinweis Der alte mongo Shell ist in MongoDB v5.0 veraltet, ist aber immer noch als Alternative zu mongosh verfügbar .

So konfigurieren Sie MongoDB in einem Docker-Container

Einzelheiten zur Konfiguration von MongoDB finden Sie im MongoDB-Handbuch. Allerdings mongod (Primärer Daemon von MongoDB) Flags werden normalerweise gesetzt, um MongoDB und den docker run zu konfigurieren Der Befehl wurde entwickelt, um den mongod zu übergeben Flaggen.

Um beispielsweise die Skript-Engine zu deaktivieren, fügen Sie das Flag wie folgt am Ende des Befehls hinzu:

    sudo docker run --name mongo_example2 -d mongo --noscripting

Geben Sie als weiteres Beispiel Folgendes ein, um die Skript-Engine zu deaktivieren und IPv6 zu aktivieren:

    sudo docker run --name mongo_example3 -d mongo --noscripting --ipv6

So speichern Sie MongoDB-Daten aus einem Docker-Container

Da MongoDB auf einem Docker-Container ausgeführt wird, bleiben seine Daten beim Beenden nicht bestehen (da es die Daten im Verzeichnis /data/db im Container selbst speichert). Wenn die MongoDB-Daten bestehen bleiben müssen, müssen Sie ein Docker-Volume erstellen und mounten oder ein Verzeichnis von Ihrem Hostsystem mounten.

Hinzufügen eines Docker-Volumes zu einem MongoDB-Container

Das Erstellen und Hinzufügen eines Volumes für den zu verwendenden Container ist einfach, wenn Sie mit Docker vertraut sind.

  1. Erstellen Sie ein Docker-Volume, auf dem sich die Daten befinden sollen, indem Sie Folgendes eingeben:

    sudo docker volume create mongo_volume
    
  2. Erstellen Sie dann einen docker run Befehl, um das Volume an den Container anzuhängen und es /data/db zuzuordnen container-Verzeichnis durch Eingabe von:

    sudo docker run -it -v mongo_volume:/data/db --name mongo_example4 -d mongo
    

Mounten eines Hostsystemverzeichnisses in einem MongoDB-Docker-Container

Wenn Sie möchten, dass Daten bestehen bleiben und außerhalb von Docker auf die Daten zugreifen, können Sie ein Verzeichnis auf Ihrem Hostsystem verwenden.

So mounten Sie ein Hostsystemverzeichnis:

  1. Erstellen Sie ein Verzeichnis auf Ihrem System (falls Sie keines haben, das Sie verwenden möchten) auf der Stammebene Ihres Systems, indem Sie Folgendes eingeben:

    sudo mkdir -p /mongo_data_directory
    
  2. Führen Sie dann einen docker run aus Befehl, um das Verzeichnis zu mounten und es /data/db zuzuordnen durch Eingabe von:

    sudo docker run -it -v /mongo_data_directory:/data/db --name mongo_example5 -d mongo
    

Weiterführende Literatur

Das Erlernen der Verwendung von MongoDB auf Docker ist für CI/CD-Workflows und eine schnelle iterative Entwicklung von entscheidender Bedeutung. Die Fortsetzung einiger MongoDB-Informationen von Docker im Docker Hub ist eine hervorragende Ergänzung zu diesem Artikel.

Um mehr über mongod zu erfahren Optionen, die in docker run übergeben werden sollen , überprüfen Sie den mongod Abschnitt MongoDB-Paketkomponenten des MongoDB-Handbuchs.

Wenn Sie außerdem ein Upgrade auf MongoDB Enterprise planen, finden Sie Anweisungen unter MongoDB Enterprise mit Docker installieren im MongoDB-Handbuch mongod .

Weitere Informationen

Weitere Informationen zu diesem Thema finden Sie in den folgenden Ressourcen. Obwohl diese in der Hoffnung bereitgestellt werden, dass sie nützlich sind, beachten Sie bitte, dass wir nicht für die Genauigkeit oder Aktualität extern gehosteter Materialien garantieren können.

  • MongoDB auf Docker Hub

Docker
  1. Docker

  2. Vollständiger Anfängerleitfaden für die Docker-Protokollierung

  3. Einführung in Docker

  4. Vollständiger Leitfaden zum Selbsthosten von Rocket.Chat mit Docker

  5. Beenden Sie den Replikatsatz MongoDB

Docker für Mac:Die vollständige Installationsanleitung

So richten Sie einen Apache Docker-Container ein

So richten Sie Docker in WSL ein [Schritt für Schritt]

Vollständige Anleitung zum Entfernen von Docker-Images

So richten Sie den Fernzugriff auf den Docker-Daemon ein [Ausführliche Anleitung]

Vollständiger Leitfaden für selbsthostendes Ghost-CMS mit Docker