Cet article présente principalement le schéma d'installation de MongoDB basé sur la conteneurisation Docker. Avec la technologie de conteneurisation Docker, vous pouvez créer rapidement un service de base de données MongoDB avec seulement quelques lignes de commandes. Voici le processus détaillé pour votre référence.
Docker installe MongoDB
En prenant Centos comme exemple, vous devez d'abord installer l'environnement Docker :
$ yum install docker
Afficher le numéro de version du Docker :
$ docker -v
Docker version 20.10.17, build 100c701
Il peut afficher correctement, indiquant que l'installation du docker est réussie.
télécharger le miroir
Alors venez sur dockerhub pour voir l'image mongo :
Au moment de la rédaction de cet article, la dernière version est la 6.0.2 :
Extrayez l'image de mongo via docker
la commande. Si aucune balise n'est spécifiée, la valeur par défaut est latest
, c'est-à-dire6.0.2
:
$ docker pull mongo
Visualisez l'image téléchargée :
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mongo latest b70536aeb250 13 days ago 695MB
créer un conteneur
C'est très simple à utiliser docker.Démarrez l'image en tant que conteneur pour exécuter un service .
La commande pour démarrer le conteneur est docker run
:
$ docker run
Avant de démarrer le conteneur mongo, arrêtez le service mongod de l'hôte pour éviter les conflits d'occupation du port :
$ mongod --dbpath=/data/mongodb/data --shutdown
Le répertoire de données doit également être spécifié lors de l'arrêt.
En regardant la documentation de l'image mongo, le moyen le plus simple de démarrer un conteneur mongo est :
$ docker run --name mongo -d -p 27017:27017 mongo
Description du paramètre :
--name mongo
: Le nom du conteneur créé, personnalisé, a généralement une relation correspondante avec le nom de l'image-d
: Démarrez le conteneur en tant que démon-p 2701:27017
: Le numéro de port par défaut de MongoDB est 27017. Ce paramètre mappe le port de l'hôte au port du conteneur mongo actuel, afin que le service de base de données du conteneur soit accessible via le réseau.mongo
: Quelle image utiliser pour créer le conteneur. L'écriture complète est<image:tag>
. Puisqu'aucune balise n'est spécifiée lors du téléchargement de l'image mongo, c'est-à-dire que la balise par défaut est utilisée, il n'est donc pas nécessaire de la spécifier ici.
Grâce à la commande simple ci-dessus, un conteneur mongo est créé et l'ID du conteneur créé sera renvoyé :
Afficher les conteneurs Docker en cours d'exécution :
$ docker ps
Vous pouvez voir l'ID du conteneur, le nom, l'heure de création, le port et d'autres informations :
À ce stade, un conteneur mongo est déjà en cours d'exécution.
Arrêter le conteneur de fonctionner
Utilisez stop
la commande, suivie du nom du conteneur et de l'ID du conteneur :
$ docker stop mongo
$ docker stop 1b5c
Seuls les premiers chiffres de l'ID sont nécessaires pour identifier un conteneur unique. Ainsi, lorsque vous utilisez l'ID, il est généralement abrégé :
Affichez tous les conteneurs avec la commande :
$ docker ps -a
Comme vous pouvez le voir, le conteneur mongo est sorti il y a 58 secondes :
L'hôte accède au service de données dans le conteneur
Un conteneur est une petite machine virtuelle. Maintenant, MongoDB s'exécute à l'intérieur du conteneur. Pour accéder au service de données, vous devez utiliser le client Mongo pour vous connecter. Le client Mongo fait ici référence à un large éventail de clients, tels que MongoDB Shell, Mongoose dans Nodejs et l'outil graphique Robo 3T, etc., appartiennent tous au client MongoDB, tant qu'ils disposent d'informations d'identification, ils peuvent se connecter au client MongoDB. exécuter le service Mongod.
Ci-dessus , nous avons installé MongoDB Shell séparément dans le système Windows et sur le serveur (hôte) pour nous connecter au service MongoDB. En tant qu'outil client, il est accessible indépendamment du fait que le service MongoDB s'exécute localement, dans un conteneur ou sur le réseau .
Étant donné que le service de conteneur créé par défaut n'a pas de nom d'utilisateur et de mot de passe définis, seuls l'adresse et le numéro de port sont nécessaires pour réussir la connexion.
Utilisation de la connexion de l'hôtemongosh
:
$ mongosh
Il se connectera par défaut mongodb://127.0.0.1:27017
, donc le service mongod se trouve dans le conteneur :
Accès réseau externe au service MongoDB
Port ouvert 27017
Avant d'accéder depuis le réseau externe, vous devez vous connecter à la console du serveur et ouvrir le port 27017 dans le groupe de sécurité :
outils de coque
Pour utiliser le local mongosh
pour vous connecter, vous devez spécifier l'adresse IP et le numéro de port de l'hôte distant :
$ mongosh --host 101.200.218.201 --port 27017
Ou peut être raccourci comme suit :
$ mongosh mongodb://101.200.218.201:27017
Outils Robo3T
Robo 3T est un excellent outil client visuel qui prend en charge la base de données MongoDB, cliquez pour accéder au site officiel pour télécharger .
Le processus d'installation est très simple, je ne le démontrerai donc pas davantage.
Après une installation réussie, ouvrez Robo 3T et créez une nouvelle connexion à la base de données :
Dans la fenêtre pop-up sélectionnez create
:
Name
Vous pouvez définir un nom pour cette connexion dans , saisir Address
l'adresse IP et le numéro de port du serveur dans , puis cliquer sur Test
le bouton en bas à gauche pour effectuer un test de connectivité. La figure suivante indique une connexion réussie. Cliquez Save
à nouveau sur le bouton pour enregistrer la connexion.
Sélectionnez ensuite cette connexion et cliquez sur Connect
le bouton pour vous connecter au service MongoDB exécuté sur le serveur :
Résumer
Cet article présente en détail le processus de téléchargement de l'image mongo via Docker dans le système Linux et de création du conteneur mongo. Il présente également la manière dont la machine hôte accède au service de base de données dans le conteneur, ainsi que la manière d'accéder à distance à la base de données. service sur le serveur localement. Pour l’outil Robo 3T, il est très simple à utiliser et est recommandé.
Que la base de données s'exécute sur la machine hôte ou dans le conteneur, en fait, elles fournissent toutes les mêmes services au monde extérieur : il suffit de se concentrer sur le fonctionnement de la base de données.
À l'heure actuelle, le MongoDB que nous avons installé n'a pas défini de nom d'utilisateur ni de mot de passe, ce qui est très peu sécurisé. Ainsi, avant de commencer réellement à exploiter la base de données, nous présenterons la stratégie de sécurité de MongoDB dans le prochain article.