MongoDB est une base de données NoSQL open source utilisant des documents et des schémas de type JSON qui prennent en charge un développement itératif rapide. Son architecture évolutive est appréciée des développeurs d'applications qui utilisent des méthodologies agiles pour évoluer rapidement. Comme il est populaire au sein de la communauté agile, l'utilisation de MongoDB avec Docker est une excellente approche pour une intégration et un développement continus (CI/CD).
Avant de commencer
Pour compléter les exemples de ce guide, configurez et sécurisez d'abord un Linode avec Docker installé. Vous pouvez y parvenir en utilisant l'application Docker Marketplace ou via une installation manuelle. Les instructions pour les deux approches sont fournies ci-dessous.
Ce guide suppose que vous êtes à l'aise avec l'interface de ligne de commande (CLI) sur un système de type Unix et l'utiliser pour travailler avec des programmes.
Configurer un Linode avec Docker
Application Docker Marketplace
Vous pouvez configurer rapidement un Linode sécurisé et mis à jour avec l'application Docker Marketplace. Pour obtenir des instructions, consultez notre guide sur la façon de déployer Docker avec les applications Marketplace. Pour les besoins de ce guide, nous vous recommandons de déployer l'application Docker Marketplace avec les options Docker :
- L'utilisateur sudo limité à créer pour le Linode
- Le mot de passe pour l'utilisateur sudo limité
- La clé publique SSH limitée de l'utilisateur sudo qui sera utilisée pour accéder au Linode
- Désactiver l'accès root via SSH ? (oui)
Installation manuelle
-
Familiarisez-vous avec notre guide de démarrage et suivez les étapes de mise à jour de votre Linode.
-
Complétez les sections de notre Sécurisation de votre serveur pour créer un compte utilisateur standard, renforcer l'accès SSH et supprimer les services réseau inutiles.
-
Installez Docker sur votre Linode en suivant les étapes de notre guide sur Comment installer et utiliser Docker sur Ubuntu et Debian.
Vérifier l'installation de Docker
Vérifiez que Docker est installé sur votre Linode :
docker --version
Vous pouvez vous attendre à un résultat semblable à celui-ci :
Docker version 20.10.8, build 3967b7d
RemarqueCe guide est écrit pour un utilisateur non root. Les commandes qui nécessitent des privilèges élevés sont préfixées par
sudo
. Si vous n'êtes pas familier avec lesudo
commande, consultez notre guide Utilisateurs et groupes.Tous les fichiers de configuration doivent être modifiés avec des privilèges élevés. N'oubliez pas d'inclure
sudo
avant d'exécuter votre éditeur de texte.
Comment installer un conteneur Docker MongoDB
Docker facilite la création d'une image MongoDB, car ils conservent une version officiellement maintenue sur le Docker Hub. Pour l'installer :
-
Téléchargez et installez l'image MongoDB depuis Docker Hub :
sudo docker pull mongo
La sortie lors du téléchargement de l'image doit ressembler à ce qui suit :
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
Remarque Cette commande extrait la dernière version par défaut (comme indiqué dans la première ligne de la sortie). Pour extraire une version spécifique, ajoutez la balise de cette version à la commande. Par exemple, pour installer MongoDB 4.4.6, entrez
docker pull mongo:4.4.6
. -
Assurez-vous que l'image a été installée :
sudo docker images
Le résultat devrait ressembler à ceci :
REPOSITORY TAG IMAGE ID CREATED SIZE mongo latest 07630e791de3 2 weeks ago 449MB
-
Créer un conteneur avec le
mongo
image en mode détaché afin qu'elle soit toujours interactive sur votre système :sudo docker run --name mongo_example -d mongo
-
Assurez-vous que le conteneur est en cours d'exécution :
sudo docker ps
Le résultat devrait ressembler à ceci :
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1f88d00b9e78 mongo "docker-entrypoint.s…" 4 seconds ago Up 4 seconds 27017/tcp mongo_example
MongoDB fonctionne maintenant en tant que conteneur Docker.
Comment se connecter à MongoDB sur le conteneur
-
Entrez ce qui suit pour obtenir l'invite bash dans le conteneur :
sudo docker exec -it mongo_example bash
-
Une fois à l'invite de commande du conteneur, entrez le
mongosh
coque :mongosh
Du mongosh
shell, vous pouvez tester les requêtes et les opérations directement avec votre base de données.
Remarque L'héritagemongo
shell est obsolète dans MongoDB v5.0, mais reste accessible comme alternative àmongosh
.
Comment configurer MongoDB dans un conteneur Docker
Pour plus de détails sur la configuration de MongoDB, consultez le manuel de MongoDB. Cependant, mongod
(le démon principal de MongoDB) les indicateurs sont généralement définis pour configurer MongoDB, et le docker run
La commande est conçue pour passer le mongod
drapeaux.
Par exemple, pour désactiver le moteur de script, ajoutez l'indicateur à la fin de la commande comme suit :
sudo docker run --name mongo_example2 -d mongo --noscripting
Comme autre exemple, pour désactiver le moteur de script et activer IPv6, saisissez ce qui suit :
sudo docker run --name mongo_example3 -d mongo --noscripting --ipv6
Comment enregistrer les données MongoDB à partir d'un conteneur Docker
Étant donné que MongoDB est exécuté sur un conteneur Docker, ses données ne persisteront pas lorsqu'il sera quitté (car il enregistre les données dans le répertoire /data/db du conteneur lui-même). Si vous avez besoin que les données MongoDB persistent, vous devez créer et monter un volume Docker ou monter un répertoire à partir de votre système hôte.
Ajout d'un volume Docker à un conteneur MongoDB
Créer et ajouter un volume pour le conteneur à utiliser est simple si vous connaissez Docker.
-
Créez un volume Docker sur lequel les données résideront en saisissant ce qui suit :
sudo docker volume create mongo_volume
-
Créez ensuite une
docker run
commande pour attacher le volume au conteneur et le mapper au/data/db
répertoire du conteneur en saisissant :sudo docker run -it -v mongo_volume:/data/db --name mongo_example4 -d mongo
Monter un répertoire système hôte dans un conteneur Docker MongoDB
Si vous souhaitez que les données persistent et accèdent aux données en dehors de Docker, vous pouvez utiliser un répertoire sur votre système hôte.
Pour monter un répertoire système hôte :
-
Créez un répertoire sur votre système (si vous n'en avez pas que vous souhaitez utiliser) au niveau racine de votre système en saisissant :
sudo mkdir -p /mongo_data_directory
-
Ensuite, exécutez un
docker run
commande pour monter le répertoire et le mapper sur/data/db
en saisissant :sudo docker run -it -v /mongo_data_directory:/data/db --name mongo_example5 -d mongo
Lectures complémentaires
Apprendre à utiliser MongoDB sur Docker est essentiel pour les workflows CI/CD et le développement itératif rapide. Continuer avec certaines des informations MongoDB de Docker sur le Docker Hub est un excellent compagnon pour cet article.
Pour en savoir plus sur mongod
options à passer dans docker run
, passez en revue le mongod
Section Composants du package MongoDB du manuel MongoDB.
De plus, si vous prévoyez de passer à MongoDB Enterprise, consultez Installer MongoDB Enterprise avec Docker dans le manuel de MongoDB pour obtenir des instructions mongod
.
Plus d'informations
Vous pouvez consulter les ressources suivantes pour plus d'informations sur ce sujet. Bien que ceux-ci soient fournis dans l'espoir qu'ils seront utiles, veuillez noter que nous ne pouvons pas garantir l'exactitude ou l'actualité des documents hébergés en externe.
- MongoDB sur Docker Hub