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
-
Acquisisci familiarità con la nostra Guida introduttiva e completa i passaggi per aggiornare il tuo Linode.
-
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.
-
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
NotaQuesta guida è scritta per un utente non root. I comandi che richiedono privilegi elevati sono preceduti da
sudo
. Se non hai familiarità consudo
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:
-
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
. -
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
-
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
-
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
-
Immettere quanto segue per ottenere il prompt bash all'interno del contenitore:
sudo docker exec -it mongo_example bash
-
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 amongosh
.
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.
-
Crea un volume Docker su cui risiedono i dati inserendo quanto segue:
sudo docker volume create mongo_volume
-
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:
-
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
-
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