Utiliser MongoDB à partir d’une image docker

MongoDB est une des bases de données NoSQL orientée Document les plus populaires. Pour l’utilisez sur des environnement de développement il est souvent plus simple d’utiliser une image docker plutôt que d’installer le moteur sur chaque poste de développement. Voici les quelques étapes à suivre pour utiliser MongoDB dans un conteneur docker.

Récupération de l’image

Le prérequis est que docker est installé et configuré sur le poste de travail. Le plus simple est d’utiliser la dernière version :

docker pull mongo

Il est possible de choisir une version spécifique en ajoutant un tag :

docker pull mongo:4.014-xenial

La liste des tags (versions + systèmes disponibles) est accessible ici.

Déploiement de l’image comme container

L’image téléchargée doit être déployée sous forme de container, il faut durant cette opération préciser les paramètres d’accès au container (port, host) et le nom du container afin de pouvoir le gérer par la suite dans docker.

docker run -d -p 27017-27019:27017-27019 --name {nom_du_container} mongo

La commande précédente va démarrer le container en mode daemon, il fonctionnera de cette manière en tâche de fond une fois démarré.

Se connecter à MongoDB

Le container docker peut être démarré et arrêté avec les commandes suivantes :

docker start {nom_du_container_mongodb}
docker stop {nom_du_container_mongodb}

Une fois démarré le container permet de se connecter à mongodb comme si il fonctionnait directement sur votre poste de travail. Avec votre outil préféré ou un langage de programmation, vous aller pouvoir vous connecter sur le host localhost. Pour interagir avec le shell mongo directement il faut se connecter au bash du container et lancer le shell mongo :

docker exec -it mongodb bash
# se connecter au shell de commande mongodb
mongo

Vous pourrez ensuite accéder à toutes les commandes de gestion à partir du shell, liste des dbs, liste des collections …

Tagged in:,

0 Comments

Leave a Reply

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.