Configurez un serveur MongoDB avec Docker

Configurez un serveur MongoDB avec Docker
Dans cet article, je vais vous montrer comment utiliser Docker Compose pour créer un conteneur MongoDB et y accéder à l'aide de Mongo Express, l'interface d'administration MongoDB basée sur le Web. Alors, commençons.

Exigences:

Afin de suivre cet article, vous devez faire installer Docker sur votre ordinateur. Linuxhint a beaucoup d'articles que vous pouvez suivre pour installer Docker sur la distribution Linux souhaitée si vous ne l'avez pas déjà installé. Alors, assurez-vous de vérifier Linuxhint.com au cas où vous auriez du mal à installer Docker.

Installation de Docker Compose:

Pour installer Docker Compose, ouvrez un terminal et exécutez la commande suivante:

$ sudo curl -l "https: // github.com / docker / compose / releases / download / 1.24.1/
docker-compose - $ (uname -s) - $ (uname -m) "-o / usr / local / bin / docker-compose

Curl devrait commencer à télécharger docker composer binaire. Cela peut prendre un certain temps pour terminer.

Une fois le téléchargement terminé, ajoutez l'autorisation exécutable au composer docker Fichier binaire avec la commande suivante:

$ sudo chmod + x / usr / local / bin / docker-compose

Maintenant, vérifiez si composer docker Le binaire est accessible avec la commande suivante:

$ docker-compose --version

Comme tu peux le voir, composer docker Le binaire fonctionne correctement.

Configuration du serveur MongoDB à l'aide de Docker Compose:

Dans cette section, je vais vous montrer une configuration très basique MongoDB et Mongo Express en utilisant Docker Composer.

Tout d'abord, créez un nouveau répertoire de projet Mongo-latest / comme suit:

$ mkdir mongo-latest

Maintenant, accédez à la Mongo-latest / Répertoire comme suit:

$ cd mongo-latest /

Maintenant, créez un nouveau fichier de configuration Docker Compose composer docker.YML comme suit:

$ nano docker-compose.YML

Maintenant, saisissez les lignes de codes suivantes dans le fichier composer docker.YML.

Version: '3'
prestations de service:
Mongo:
Image: Mongo
redémarrer: toujours
PORTS:
- "27017: 27017"
Mongo-expresse:
Image: Mongo-Express
redémarrer: toujours
PORTS:
- "8081: 8081"

Ici, nous définissons deux services, mongo et mongo. Le mongo Le service est responsable du démarrage du mongo (image) conteneur Docker. Le mongo Port de conteneur Docker 27017 est transmis au port 27017 Sur votre hôte Docker. Le mongo Le service est responsable du démarrage du mongo (image) conteneur Docker. De la même manière, port 8081 est transmis au port 8081 Sur l'hôte Docker.

Les deux services sont prêts à redémarrer (redémarrer: toujours) en échec.

Maintenant, enregistrez le fichier en appuyant sur + X suivie par Y et .

Maintenant, pour démarrer les services MongoDB et Mongo Express, exécutez la commande suivante:

$ docker-compose up -d

Si vous exécutez cette commande pour la première fois, cela peut prendre un certain temps pour démarrer les services car les images Docker seront téléchargées depuis Docker Hub.

Les services doivent commencer.

Maintenant, à partir d'un navigateur Web, visitez http: // localhost: 8081 et l'interface Web Mongo Express doit être affichée comme vous pouvez le voir dans la capture d'écran ci-dessous. De là, vous pouvez gérer les bases de données MongoDB, ajouter des données à la base de données et bien d'autres.

Configuration du mot de passe de la base de données MongoDB:

Si vous souhaitez configurer un mot de passe de base de données MongoDB, cette section est pour vous.

Tout d'abord, arrêtez les services MongoDB et Mongo Express comme suit:

$ docker-compose

Maintenant, modifiez le composer docker.YML Fichier comme suit:

$ nano docker-compose.YML

Maintenant, ajoutez le texte marqué (gras) ci-dessous au fichier de configuration composer docker.YML.

Version: '3'
prestations de service:
Mongo:
Image: Mongo
redémarrer: toujours
PORTS:
- "27017: 27017"
environnement:
Mongo_initdb_root_username: root
Mongo_initdb_root_password: secret
Mongo-expresse:
Image: Mongo-Express
redémarrer: toujours
PORTS:
- "8081: 8081"
environnement:
Me_config_mongodb_adminusename: root
Me_config_mongodb_adminpassword: secret

Le Mongo_initdb_root_username: root et Mongo_initdb_root_password: secret dans le mongo La section de service est utilisée pour définir le nom d'utilisateur MongoDB racine et mot de passe secret.

Le Me_config_mongodb_adminusename: root et Me_config_mongodb_adminpassword: secret dans le mongo La section de service est utilisée pour dire à Mongo Express d'utiliser le nom d'utilisateur racine et mot de passe secret Pour se connecter au serveur MongoDB.

Fichier de configuration final.

Maintenant, commencez les services comme suit:

$ docker-compose up -d

Comme vous pouvez le voir, je peux toujours accéder à l'interface Web Mongo Express.

J'ai changé le mongo mot de passe à autre chose que secret, Et comme vous pouvez le voir, je n'ai pas pu me connecter au serveur MongoDB. Donc, tout fonctionne comme prévu.

Enregistrer les données MongoDB à l'aide de volumes:

Par défaut, le conteneur MongoDB n'enregistre aucune donnée. Si vous voulez que vos données de base de données MongoDB persistent, vous devez utiliser des volumes Docker. Je vais vous montrer comment dans cette section.

Tout d'abord, arrêtez les services comme suit:

$ docker-compose

Maintenant, ajoutez la section marquée (gras) au composer docker.YML déposer.

Version: '3'
prestations de service:
Mongo:
Image: Mongo
redémarrer: toujours
PORTS:
- "27017: 27017"
environnement:
Mongo_initdb_root_username: root
Mongo_initdb_root_password: secret
Volumes:
- Mongo-Data: / Data / DB
Mongo-expresse:
Image: Mongo-Express
redémarrer: toujours
PORTS:
- "8081: 8081"
environnement:
Me_config_mongodb_adminusename: root
Me_config_mongodb_adminpassword: secret
Volumes:
Mongo-Data:

Ici, j'ai défini un nouveau volume nommé mango-data qui enregistre les données du chemin / Données / DB de la mongo récipient.

Fichier de configuration final.

Maintenant, commencez les services comme suit:

$ docker-compose up -d

Comme vous pouvez le voir, l'interface Web Mongo Express fonctionne correctement.

J'ai créé une nouvelle base de données mydb.

Maintenant, redémarrez les services comme suit:

$ docker-compose redémarrer

Comme vous pouvez le voir, même après avoir redémarré le mongo (Mongodb) et mongo (Mongo Express) Services le mydb la base de données est toujours disponible. Donc, ça a fonctionné.

Changer le nom du conteneur MongoDB:

Par défaut, le nom du service de base de données MongoDB devrait être mongo Pour que Mongo Express fonctionne. Mais, si vous souhaitez modifier le nom du service de base de données en quelque chose d'autre comme serveur de mongodb, alors vous devrez dire le mongo Service que vous avez changé mongo Nom du service à autre chose.

Tout d'abord, arrêtez les services comme suit:

$ docker-compose

Maintenant, modifiez / ajoutez le texte marqué dans le composer docker.YML fichier de configuration.

Version: '3'
prestations de service:
MongoDB-Server:
Image: Mongo
redémarrer: toujours
PORTS:
- "27017: 27017"
environnement:
Mongo_initdb_root_username: root
Mongo_initdb_root_password: secret
Volumes:
- Mongo-Data: / Data / DB
Mongo-expresse:
Image: Mongo-Express
redémarrer: toujours
PORTS:
- "8081: 8081"
environnement:
Me_config_mongodb_adminusename: root
Me_config_mongodb_adminpassword: secret
ME_CONFIG_MONGODB_SERVER: MongoDB-Server
Volumes:
Mongo-Data:

Ici, ME_CONFIG_MONGODB_SERVER: MongoDB-Server est utilisé pour dire le mongo service que le mongo Le nom du service est changé en serveur de mongodb.

Le fichier de configuration final.

Maintenant, commencez les services comme suit:

$ docker-compose up -d

Comme vous pouvez le voir, l'interface Web Mongo Express fonctionne encore.

Définition du mot de passe d'accès Mongo Express:

Par défaut, l'interface d'administration Mongo Express ne vous demande aucune information de connexion. Mais si vous souhaitez configurer une méthode d'authentification de nom d'utilisateur et de mot de passe, alors cette section est pour vous.

Tout d'abord, arrêtez les services comme suit:

$ docker-compose

Maintenant, ajoutez le texte marqué (gras) au composer docker.YML fichier de configuration.

Version: '3'
prestations de service:
Mongo:
Image: Mongo
redémarrer: toujours
PORTS:
- "27017: 27017"
environnement:
Mongo_initdb_root_username: root
Mongo_initdb_root_password: secret
Volumes:
- Mongo-Data: / Data / DB
Mongo-expresse:
Image: Mongo-Express
redémarrer: toujours
PORTS:
- "8081: 8081"
environnement:
Me_config_mongodb_adminusename: root
Me_config_mongodb_adminpassword: secret
ME_CONFIG_BASICAUTH_USERNAME: Admin
ME_CONFIG_BASICAUTH_PASSWORD: Secret
Volumes:
Mongo-Data:

Ici, ME_CONFIG_BASICAUTH_USERNAME: Admin et ME_CONFIG_BASICAUTH_PASSWORD: Secret est utilisé pour dire mongo Service pour utiliser le nom d'utilisateur administrer Et le mot de passe secret pour l'authentification.

Fichier de configuration final.

Maintenant, commencez les services comme suit:

$ docker-compose up -d

Maintenant, si vous essayez de visiter la page Mongo Express, il vous sera demandé de vous authentifier en utilisant votre nom d'utilisateur et votre mot de passe.

Si vous fournissez le nom d'utilisateur et le mot de passe corrects, vous serez autorisé à utiliser Mongo Express pour gérer votre base de données MongoDB.

Les références:

Pour plus d'informations, consultez les liens suivants:
[1] Page officielle Docker Hub de Mongo
[2] Page officielle Docker Hub of Mongo-Express

C'est donc ainsi que vous configurez un serveur MongoDB à l'aide de Docker. Merci d'avoir lu cet article.