# Comment exécuter MongoDB dans un conteneur Docker ?

Les conteneurs (*containers*) Docker MongoDB sont faciles à répliquer et à faire évoluer. Si la charge sur la base de données augmente, vous pouvez lancer d’autres conteneurs MongoDB. Ainsi, les **performances de votre base de données restent stables**.

## MongoDB fonctionne-t-il dans un conteneur Docker ?

Oui : MongoDB peut effectivement fonctionner dans un [conteneur Docker](https://www.ionos.fr/digitalguide/serveur/know-how/les-docker-containers/). Sur Docker Hub, il existe deux types d’images MongoDB : la **Community Edition** et l’**Enterprise Edition**. Selon vos besoins, choisissez entre ces deux variantes. La Community Edition est gratuite et open source ; elle est utilisée à des fins non commerciales ou pour de petits déploiements. L’édition Enterprise, en revanche, offre des fonctionnalités et un support supplémentaires adaptés aux applications plus importantes ou aux environnements d’entreprise ayant des besoins avancés, tels que le chiffrement, l’audit et l’intégration LDAP.

Si les images MongoDB prédéfinies sur Docker Hub ne répondent pas entièrement à vos besoins, [Docker](https://www.ionos.fr/digitalguide/serveur/know-how/quest-ce-que-docker/) vous permet de créer votre propre **image Docker personnalisée** à l’aide d’un [Dockerfile](https://www.ionos.fr/digitalguide/serveur/know-how/dockerfile/). Vous pouvez y choisir la version de MongoDB, définir certaines options de configuration (par exemple les méthodes d’authentification) et installer des outils ou pilotes supplémentaires importants pour votre environnement.

## Démarrer MongoDB en tant que conteneur Docker

Docker se caractérise par une **virtualisation légère** qui favorise la portabilité et la cohérence dans différents environnements de développement et de production. Dans les paragraphes qui suivent, nous expliquons étape par étape comment configurer les conteneurs MongoDB dans Docker. Pour les débutants, nous recommandons notre [tutoriel Docker](https://www.ionos.fr/digitalguide/serveur/configuration/tutoriel-docker-installation-et-premiers-pas/) : nous y donnons une introduction détaillée à la plateforme de conteneurs.

### Étape 1 : télécharger l’image Docker MongoDB

Pour créer un conteneur Docker MongoDB, nous commençons tout d’abord par obtenir l’image correspondante pour l’exécution de **Docker Hub**. Ouvrez votre terminal ou votre ligne de commande et exécutez la commande suivante :

```bash
docker pull mongo:latest
```

Si l’image existe déjà en local, Docker ne téléchargera pas de nouvelle version, sauf si vous indiquez explicitement la version que vous souhaitez utiliser (par exemple `mongo:4.4`).

### Étape 2 : démarrer le conteneur Docker MongoDB

Après avoir téléchargé avec succès l’image Docker pour MongoDB, vous pouvez maintenant démarrer un conteneur basé sur cette image :

```bash
docker run --name mongodb-container -d -p 27017:27017 mongo:latest
```

- `docker run` : démarre un nouveau conteneur Docker
- `--name mongodb-container` : donne au conteneur Docker le nom « mongodb-container »
- `-d` : permet de démarrer le conteneur en arrière-plan (mode détaché). Ainsi, le terminal reste utilisable pendant l’exécution du conteneur.
- `-p 27017:27017` : ouvre le port MongoDB standard (27017) du conteneur sur votre système hôte.
- `mongo:latest` : transmet l’instruction d’obtenir la dernière image disponible.

### Étape 3 : vérifier que le conteneur est en cours d’exécution

Pour vous assurer que le conteneur a bien démarré, entrez la commande suivante :

```bash
docker ps
```

Les informations obtenues sont utiles pour obtenir un aperçu rapide des conteneurs Docker MongoDB actifs sur votre système, de leur durée d’exécution et des ports qu’ils utilisent. Si vous avez besoin de plus de détails, comme les conteneurs arrêtés ou des options de filtrage spécifiques, il est recommandé d’utiliser la commande `docker ps -a`.

### Étape 4 : se connecter à MongoDB dans le conteneur Docker

Vous pouvez maintenant vous connecter à l’instance MongoDB dans votre conteneur Docker. Pour cela, lancez le **MongoDB Shell** directement dans le conteneur :

```bash
docker exec -it mongodb-container mongo
```

- `docker exec` : exécute une commande dans le conteneur en cours d’exécution
- `-it` : permet d’interagir avec le terminal dans le conteneur
- `mongodb-container` : désigne le nom du conteneur MongoDB mis en place
- `mongo` : démarre le Shell MongoDB

Après avoir exécuté cette commande, vous devriez voir le Shell MongoDB prêt à recevoir des commandes. Vous pouvez maintenant entrer les commandes MongoDB habituelles pour gérer ou interroger votre base de données.

### Étape 5 : exécuter des opérations dans le Shell MongoDB

Vous pouvez afficher toutes les bases de données existantes :

```bash
show databases
```

La sortie contient les noms des bases de données :

```bash
admin   0.000GB
local      0.000GB
test       0.000GB
```

Pour travailler avec une base de données spécifique dans le Shell MongoDB, utilisez la commande suivante :

```bash
use mydatabase
```

Avec cette commande, vous passez à la base de données avec le nom « mydatabase ». Si cette base de données n’existe pas, elle est créée automatiquement dès qu’un document est inséré.

Vous pouvez également consulter les documents d’une collection spécifique :

```bash
db.users.find()
```

Le Shell MongoDB renvoie tous les documents stockés dans la collection « Users ».

```bson
{ "_id": ObjectId("609823e9f9a5f7f364fc3f90"), "username": "alice", "age": 28 }
{ "_id": ObjectId("609823f2f9a5f7f364fc3f91"), "username": "martin", "age": 32 }
{ "_id": ObjectId("609823f9f9a5f7f364fc3f92"), "username": "charles", "age": 25 }
```

Chaque document contient un champ `_id` unique (identifiant spécifique à MongoDB) et d’autres champs tels que `username` et `age`.

Vous trouverez de plus amples informations sur les [outils Docker](https://www.ionos.fr/digitalguide/serveur/know-how/docker-lecosysteme-de-la-plateforme-de-conteneurs/) ainsi qu’une [présentation de MongoDB avec une comparaison avec MySQL](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/mongodb-presentation-et-comparaison-avec-mysql/) dans notre Digital Guide.


This is a markdown version of: [https://www.ionos.fr/digitalguide/serveur/configuration/mongodb-docker-container/](https://www.ionos.fr/digitalguide/serveur/configuration/mongodb-docker-container/) for AI/LLM consumption.