GNU/Linux >> Linux Esercitazione >  >> Panels >> Docker

Configura MongoDB su Docker

MongoDB è un database NoSQL open source che utilizza documenti e schemi simili a JSON che supportano un rapido sviluppo iterativo. La sua architettura scale-out è apprezzata dagli sviluppatori di applicazioni che utilizzano metodologie agili per spostarsi rapidamente. Poiché è popolare all'interno della comunità agile, l'utilizzo di MongoDB con Docker è un approccio eccellente per un'integrazione e sviluppo continui flusso di lavoro (CI/CD).

Prima di iniziare

Per completare gli esempi in questa guida, prima configura e proteggi un Linode con Docker installato. Puoi farlo utilizzando l'app Docker Marketplace o tramite l'installazione manuale. Le istruzioni per entrambi gli approcci sono fornite di seguito.

Questa guida presuppone che tu abbia dimestichezza con l'interfaccia della riga di comando (CLI) su un sistema simile a Unix e utilizzarlo per lavorare con i programmi.

Configura un Linode con Docker

App Docker Marketplace

Puoi configurare rapidamente un Linode sicuro e aggiornato con l'app Docker Marketplace. Per istruzioni, consulta la nostra guida su Come distribuire Docker con le app Marketplace. Ai fini di questa guida, consigliamo di distribuire l'app Docker Marketplace con le Opzioni Docker:

  • L'utente sudo limitato da creare per Linode
  • La password per l'utente sudo limitato
  • La chiave pubblica SSH dell'utente sudo limitato che verrà utilizzata per accedere al Linode
  • Disabilitare l'accesso root su SSH? (sì)

Installazione manuale

  1. Acquisisci familiarità con la nostra Guida introduttiva e completa i passaggi per aggiornare il tuo Linode.

  2. Completa le sezioni della nostra Protezione del server per creare un account utente standard, rafforzare l'accesso SSH e rimuovere i servizi di rete non necessari.

  3. Installa Docker sul tuo Linode seguendo i passaggi della nostra guida su Come installare e utilizzare Docker su Ubuntu e Debian.

Verifica installazione Docker

Verifica che Docker sia installato sul tuo Linode:

docker --version

Puoi aspettarti un output simile al seguente:

Docker version 20.10.8, build 3967b7d
Nota

Questa guida è scritta per un utente non root. I comandi che richiedono privilegi elevati sono preceduti da sudo . Se non hai familiarità con sudo comando, visita la nostra guida Utenti e Gruppi.

Tutti i file di configurazione devono essere modificati con privilegi elevati. Ricordati di includere sudo prima di eseguire il tuo editor di testo.

Come installare un contenitore Docker MongoDB

Docker rende molto semplice la creazione di un'immagine MongoDB, poiché conservano una versione ufficialmente mantenuta su Docker Hub. Per installarlo:

  1. Scarica e installa l'immagine MongoDB da Docker Hub:

    sudo docker pull mongo
    

    L'output del download dell'immagine dovrebbe essere simile al seguente:

    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
    Nota Questo comando estrae l'ultima versione per impostazione predefinita (come dice nella prima riga dell'output). Per estrarre una versione specifica, aggiungi il tag per quella versione al comando. Ad esempio, per installare MongoDB 4.4.6, inserisci docker pull mongo:4.4.6 .
  2. Assicurati che l'immagine sia stata installata:

    sudo docker images
    

    L'output dovrebbe essere simile a questo:

    REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
    mongo        latest    07630e791de3   2 weeks ago   449MB
  3. Crea un contenitore con mongo immagine in modalità distaccata in modo che sia ancora interattiva sul tuo sistema:

    sudo docker run --name mongo_example -d mongo
    
  4. Assicurati che il contenitore sia in esecuzione:

    sudo docker ps
    

    L'output dovrebbe essere simile a questo:

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

MongoDB è ora in esecuzione come Docker Container.

Come accedere a MongoDB sul container

  1. Immettere quanto segue per ottenere il prompt bash all'interno del contenitore:

    sudo docker exec -it mongo_example bash
    
  2. Una volta al prompt dei comandi del contenitore, inserisci il mongosh guscio:

    mongosh
    

Dal mongosh shell, puoi testare query e operazioni direttamente con il tuo database.

Nota L'eredità mongo shell è stata deprecata in MongoDB v5.0, ma è ancora accessibile come alternativa a mongosh .

Come configurare MongoDB in un contenitore Docker

Per i dettagli sulla configurazione di MongoDB, vedere il manuale di MongoDB. Tuttavia, mongod I flag (il demone principale di MongoDB) sono generalmente impostati per configurare MongoDB e la docker run il comando è progettato per passare il mongod bandiere.

Ad esempio, per disattivare il motore di scripting, aggiungi il flag alla fine del comando come segue:

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

Come altro esempio, per disattivare il motore di scripting e attivare IPv6, inserisci quanto segue:

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

Come salvare i dati MongoDB da un Docker Container

Poiché MongoDB viene eseguito su un Docker Container, i suoi dati non persistono quando viene chiuso (poiché salva i dati nella directory /data/db nel container stesso). Se hai bisogno che i dati di MongoDB persistano, devi creare e montare un volume Docker o montare una directory dal tuo sistema host.

Aggiunta di un volume Docker a un contenitore MongoDB

La creazione e l'aggiunta di un volume da utilizzare per il contenitore è semplice se hai familiarità con Docker.

  1. Crea un volume Docker su cui risiedono i dati inserendo quanto segue:

    sudo docker volume create mongo_volume
    
  2. Quindi crea una docker run comando per allegare il volume al container e mapparlo a /data/db directory del contenitore immettendo:

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

Montaggio di una directory di sistema host in un contenitore Docker MongoDB

Se desideri che i dati persistano e accedano ai dati al di fuori di Docker, puoi utilizzare una directory sul tuo sistema host.

Per montare una directory di sistema host:

  1. Crea una directory sul tuo sistema (se non ne hai una che desideri utilizzare) a livello di root del tuo sistema inserendo:

    sudo mkdir -p /mongo_data_directory
    
  2. Quindi esegui un docker run comando per montare la directory e mapparla su /data/db inserendo:

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

Ulteriori letture

Imparare a utilizzare MongoDB su Docker è fondamentale per i flussi di lavoro CI/CD e per un rapido sviluppo iterativo. Continuare con alcune delle informazioni MongoDB di Docker su Docker Hub è un ottimo compagno per questo articolo.

Per ulteriori informazioni su mongod opzioni da passare in docker run , esamina il mongod Sezione Componenti del pacchetto MongoDB del Manuale MongoDB.

Inoltre, se prevedi di eseguire l'aggiornamento a MongoDB Enterprise, consulta Installazione di MongoDB Enterprise con Docker nel Manuale di MongoDB per le istruzioni mongod .

Maggiori informazioni

Si consiglia di consultare le seguenti risorse per ulteriori informazioni su questo argomento. Sebbene questi siano forniti nella speranza che possano essere utili, tieni presente che non possiamo garantire l'accuratezza o la tempestività dei materiali ospitati esternamente.

  • MongoDB su Docker Hub

Docker
  1. Docker

  2. Introduzione a Docker

  3. Guida completa all'auto-hosting di Rocket.Chat con Docker

  4. Come configurare l'accesso remoto a Docker Daemon

  5. Arresta il set di repliche MongoDB

Docker per Mac:la guida all'installazione completa

Come configurare un container Docker Apache

Come configurare Docker in WSL [Passo dopo passo]

Guida completa per la rimozione delle immagini Docker

Come configurare l'accesso remoto a Docker Daemon [Guida dettagliata]

Guida completa all'hosting automatico di Ghost CMS con Docker