Accéder au contenu principal

Exécution de MongoDB dans Docker : Un guide complet avec des exemples

Ce guide vous explique comment exécuter MongoDB dans Docker, en couvrant à la fois les déploiements rapides en ligne de commande et les configurations Docker Compose complètes. Il est idéal pour les développeurs qui souhaitent héberger eux-mêmes leurs applications ou faire des essais en local sans se lancer immédiatement dans le cloud.
Actualisé 14 juil. 2025  · 5 min de lecture

Vous souhaitez héberger vous-même MongoDB ou commencer à l'utiliser dans un environnement local ? Si vous ne souhaitez pas vous lancer directement dans MongoDB Atlas, plusieurs options s'offrent à vous pour commencer, notamment les conteneurs avec Docker. 

L'utilisation de Docker constitue un choix judicieux pour la gestion de votre instance MongoDB, car elle ne prend pas plus d'une minute et est facile à maintenir ou à déplacer entre les ordinateurs hôtes.

Dans cet article, nous allons examiner plusieurs approches pour déployer MongoDB avec Docker et découvrir quelques astuces et conseils utiles.

Conditions préalables

Pour suivre ce tutoriel, vous devez disposer du moteur Docker installé sur votre ordinateur. Cela peut être sur macOS, Windows ou Linux. Il n'est pas nécessaire d'installer explicitement Docker Desktop, mais cela peut faciliter votre utilisation de Docker selon le système d'exploitation que vous utilisez. 

J'utilise le moteur Docker via Rancher Desktop sur macOS, par exemple, et cela fonctionne correctement.

Pour perfectionner vos compétences en matière de Docker, nous vous recommandons de consulter le site Docker pour débutants : Guide pratique sur les conteneurs pour acquérir les connaissances de base.

Téléchargement d'une image Docker MongoDB

Avant de pouvoir exécuter MongoDB dans un conteneur Docker, vous devez d'abord télécharger une image qui répond à vos besoins. Dans la ligne de commande, exécutez la commande suivante :

docker pull mongodb/mongodb-community-server:latest

La commande ci-dessus téléchargera l'image officielle MongoDB Community Edition (CE) avec la balise « latest ». 

Il est important de noter que mongodb/mongodb-community-server et mongodb/mongodb-enterprise-server sont des images Docker officielles gérées par MongoDB. Toutes les autres images sont gérées par la communauté externe et peuvent donner des résultats différents ou inattendus.

Une fois l'image téléchargée, nous pouvons examiner les options de déploiement.

Exécution de MongoDB en tant que conteneur isolé à l'aide de la commande Docker Run

La méthode la plus rapide pour déployer MongoDB avec Docker consiste à utiliser la commande « docker run » avec quelques paramètres de configuration. Par exemple, vous pouvez exécuter la commande suivante à partir de votre ligne de commande :

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

La commande ci-dessus prendra notre image et la déploiera dans un conteneur nommé « MongoDB ». Le conteneur sera mappé sur un port, ce qui signifie que l'hôte pourra interagir avec lui sur le port « 27017 ». Les informations d'authentification root sont également définies dans cet exemple, mais en fonction de vos besoins de déploiement, vous pouvez utiliser Docker Secrets ou un autre moyen sécurisé pour transmettre des informations sensibles.

Dans l'exemple ci-dessus, toutes les données sont stockées dans le conteneur. Les données MongoDB, qui comprennent les bases de données, les collections et même les documents, ne seront conservées que tant que le conteneur concerné existera. Cela peut convenir pour des tests, mais dans la plupart des cas, vous souhaiterez bénéficier d'une persistance fiable de vos données MongoDB dans Docker. Pour ce faire, veuillez créer un volume Docker à l'aide de la commande suivante :

docker volume create mongodb

Pour indiquer à votre conteneur d'utiliser ce volume, vous pouvez modifier votre commande de déploiement afin qu'elle ressemble davantage à ce qui suit :

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

Veuillez noter que cette fois-ci, nous spécifions le volume à utiliser. Lorsque vous utilisez un volume, vous pouvez être certain que vos données seront conservées même après la fermeture ou la mise à jour de votre conteneur.

Une fois MongoDB exécuté dans un conteneur Docker, vous pouvez vous y connecter en utilisant mongodb://nraboy:password1234@localhost:27017 comme chaîne de connexion à partir de l'outil de votre choix.

Intégration de MongoDB à votre pile ou à votre projet avec Docker Compose

Si vous envisagez d'utiliser MongoDB avec un projet particulier, également géré avec Docker, il peut être judicieux de gérer MongoDB avec une configuration Docker Compose. Ces configurations sont fréquemment utilisées pour mettre vos projets en sandbox, souvent appelées « piles ».

Veuillez créer un fichier nommé « docker-compose.yml » quelque part sur votre ordinateur et y inscrire ce qui suit :

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

La configuration ci-dessus utilise des informations que nous avons déjà vues dans la commande en ligne de commande au singulier. Comme pour l'autre méthode, nous partons du principe que vous avez déjà créé un volume mongodb qui sera géré par Docker. Encore une fois, si vous devez effectuer cette opération, exécutez la commande suivante :

docker volume create mongodb

Bien entendu, vous pouvez gérer vos volumes Docker de la manière qui vous convient le mieux. La création d'un volume n'est qu'une possibilité parmi d'autres.

Une fois votre ligne de commande définie sur le même répertoire de travail que votre fichier docker-compose.yml, exécutez la commande suivante :

docker compose up -d

La commande ci-dessus démarre votre pile en mode détaché. 

Vous pouvez vérifier que tout fonctionne correctement en essayant de vous connecter à votre instance à l'aide d'un outil tel que MongoDB Compass, d'un pilote de langage tel que Node.js ou via le shell MongoDB. 

Si vous suivez exactement l'exemple, votre chaîne de connexion sera mongodb://nraboy:password1234@localhost:27017, mais selon la manière dont vous avez procédé, elle pourrait être différente.

Pour arrêter votre instance MongoDB, exécutez la commande suivante à partir de la ligne de commande avec votre configuration YAML dans le même répertoire de travail :

docker compose down

Étant donné que nous utilisons un volume externe, tout restera intact lors du prochain démarrage de votre conteneur.

Conclusion

Docker facilite l'utilisation de MongoDB dans un environnement auto-hébergé ou local. Vous n'avez pas à vous soucier des configurations générales du système d'exploitation ni de l'expérience que vous aurez d'un ordinateur à l'autre. Vous bénéficierez d'une expérience cohérente à chaque fois. 

Pour aller plus loin, il est utile d'apprendre à créer une base de données dans MongoDB.

Devenez ingénieur en données

Devenez un ingénieur de données grâce à l'apprentissage avancé de Python
Commencez à apprendre gratuitement

Foire aux questions

Est-il possible d'exécuter plusieurs conteneurs MongoDB simultanément avec Docker ?

Oui, vous pouvez exécuter plusieurs conteneurs MongoDB à condition que chacun soit mappé à un port différent ou s'exécute sur un réseau Docker distinct afin d'éviter tout conflit.

Comment sauvegarder les données d'un conteneur MongoDB dans Docker ?

Pour sauvegarder des données, vous pouvez utiliser docker cp pour extraire des fichiers du volume ou utiliser mongodump à l'intérieur du conteneur. Les volumes persistants contribuent également à conserver les données entre les sessions.

Est-il sécurisé de stocker les mots de passe MongoDB dans le fichier Docker Compose ?

Ce n'est pas idéal. Veuillez utiliser les secrets Docker ou les fichiers de variables d'environnement (.env) qui sont exclus du contrôle de version afin de gérer les informations d'identification sensibles de manière sécurisée.

MongoDB fonctionne-t-il correctement dans Docker sous Windows ?

Oui, MongoDB fonctionne parfaitement dans Docker sous Windows, macOS et Linux, en particulier lorsque vous utilisez WSL 2 ou Docker Desktop pour Windows afin de garantir la compatibilité.

Puis-je utiliser MongoDB avec Docker en production ?

Oui, mais il est recommandé de configurer correctement le réseau, les volumes de stockage, l'authentification et les sauvegardes avant d'utiliser MongoDB Dockerisé dans un environnement de production.

Comment puis-je me connecter à MongoDB dans Docker à partir d'un autre conteneur ?

Veuillez utiliser Docker Compose et référencer le conteneur MongoDB par son nom de service en tant que nom d'hôte. Cela permet la communication de service à service sur le même réseau.

Dois-je installer MongoDB localement si j'utilise Docker ?

Non. Docker exécute MongoDB dans un environnement conteneurisé, vous n'avez donc pas besoin d'installer MongoDB directement sur votre machine hôte.

Est-il possible d'utiliser MongoDB Compass avec une instance MongoDB conteneurisée avec Docker ?

Tout à fait. Il suffit d'utiliser la chaîne de connexion appropriée (par exemple, mongodb://user:pass@localhost:27017) pour vous connecter depuis MongoDB Compass à votre conteneur local.

Comment puis-je surveiller les performances de MongoDB dans Docker ?

Vous pouvez intégrer des outils tels qu' mongostat, mongotop ou des solutions de surveillance externes telles que Prometheus et Grafana pour suivre les performances au sein de Docker.

Mes données MongoDB seront-elles conservées dans un conteneur Docker ?

Tant que vous avez choisi de mapper le répertoire du conteneur à un volume sur votre ordinateur hôte, les données devraient être conservées sans problème entre les mises à jour et les lancements.

Dois-je utiliser Docker ou MongoDB Atlas ?

Dans la plupart des cas, il est préférable d'utiliser MongoDB Atlas en raison de ses fonctionnalités, de son prix et de sa facilité d'utilisation, mais MongoDB via Docker constitue également une option valable.

Dois-je utiliser Docker Desktop avec MongoDB ?

Docker Desktop facilite généralement l'utilisation de Docker, mais son installation n'est pas obligatoire. La plupart des distributions Linux incluent le moteur Docker, et d'autres interfaces telles que Rancher Desktop fonctionnent également.


Nic Raboy's photo
Author
Nic Raboy

Nic Raboy est responsable des relations avec les développeurs chez MongoDB, où il dirige une équipe de développeurs Python, Java, C# et PHP qui créent un contenu génial pour aider les développeurs à réussir à inclure MongoDB dans leurs projets. Il a de l'expérience avec Golang et JavaScript et écrit souvent sur ses aventures de développement.

Sujets

Découvrez MongoDB grâce à ces cours.

Cours

Introduction to MongoDB in Python

3 h
22.2K
Learn to manipulate and analyze flexibly structured data with MongoDB.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow
Apparenté

blog

Architecture de l'entrepôt de données : Tendances, outils et techniques

Apprenez l'essentiel de l'architecture d'un entrepôt de données, des composants clés aux meilleures pratiques, pour construire un système de données évolutif et efficace !
Kurtis Pykes 's photo

Kurtis Pykes

15 min

blog

Les 50 meilleures questions et réponses d'entretien sur AWS pour 2025

Un guide complet pour explorer les questions d'entretien AWS de base, intermédiaires et avancées, ainsi que des questions basées sur des situations réelles.
Zoumana Keita 's photo

Zoumana Keita

15 min

Didacticiel

Méthode index() de Python expliquée à l'aide d'exemples

Découvrez comment utiliser la fonction index() de Python pour trouver la position d'éléments dans des listes.
Sejal Jaiswal's photo

Sejal Jaiswal

Didacticiel

Python Switch Case Statement : Guide du débutant

Découvrez le match-case de Python : un guide sur sa syntaxe, ses applications en data science, ML, et une analyse comparative avec le switch-case traditionnel.
Matt Crabtree's photo

Matt Crabtree

Didacticiel

Tutoriel sur les méthodes .append() et .extend() de Python

Apprenez à utiliser les méthodes .append() et .extend() pour ajouter des éléments à une liste.
DataCamp Team's photo

DataCamp Team

Didacticiel

Instructions IF, ELIF et ELSE en Python

Dans ce tutoriel, vous apprendrez exclusivement les instructions if else en Python.
Sejal Jaiswal's photo

Sejal Jaiswal

Voir plusVoir plus