GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

Configurer MongoDB sur Docker

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

  1. Familiarisez-vous avec notre guide de démarrage et suivez les étapes de mise à jour de votre Linode.

  2. 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.

  3. 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
Remarque

Ce 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 le sudo 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 :

  1. 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 .
  2. 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
  3. 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
    
  4. 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

  1. Entrez ce qui suit pour obtenir l'invite bash dans le conteneur :

    sudo docker exec -it mongo_example bash
    
  2. 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éritage mongo 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.

  1. Créez un volume Docker sur lequel les données résideront en saisissant ce qui suit :

    sudo docker volume create mongo_volume
    
  2. 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 :

  1. 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
    
  2. 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

Docker
  1. Docker

  2. Guide complet du débutant sur la journalisation Docker

  3. Présentation de Docker

  4. Guide complet de l'auto-hébergement de Rocket.Chat avec Docker

  5. Comment configurer l'accès à distance au démon Docker

Docker pour Mac :le guide d'installation complet

Comment configurer un conteneur Apache Docker

Comment configurer Docker dans WSL [étape par étape]

Guide complet pour supprimer les images Docker

Comment configurer l'accès à distance au démon Docker [Guide détaillé]

Guide complet de l'auto-hébergement de Ghost CMS avec Docker