Comment et pourquoi exécuter Redis dans Docker

Publié: 2023-05-02

Redis est une base de données en mémoire hautement disponible. Son magasin de données clé-valeur persistant sur disque est idéal pour de multiples utilisations à haute disponibilité.

D'autre part, Docker est un outil pour conteneuriser les applications et les services, isoler leurs environnements et leur permettre de s'exécuter séparément. Vous pouvez utiliser Docker comme gestionnaire de packages pour les applications et les services avec toutes les dépendances, configurations, scripts, etc. nécessaires. Un script appelé Dockerfile est placé à l'intérieur du conteneur Docker et vous permet de déployer le conteneur en tant qu'entité unique.

Cet article vous apprend à utiliser efficacement ces deux technologies open source. Il explique également pourquoi l'exécution de clusters Redis dans des conteneurs Docker est vitale et les avantages et avantages de le faire par rapport à l'exécution de clusters Redis sur des machines virtuelles ou des serveurs bare metal.

Les différentes utilisations de Redis

Redis présente plusieurs avantages. Ses utilisations les plus populaires incluent :

  • Cache de base de données clé-valeur distribué
  • Courtier de messages
  • Serveur de mise en cache d'objets persistants

De plus, Redis peut prendre en charge plusieurs types et structures de données, ce qui le rend utilisable à la fois comme couche de base de données primaire et secondaire pour les applications. Il prend également en charge les listes, les flux, les hachages, les ensembles, etc.

Cependant, vous pouvez pousser plus loin les avantages de Redis en le conteneurisant.

Redis est meilleur dans un conteneur ! Apprenez à utiliser efficacement Redis & Docker et déverrouillez les avantages de la conteneurisation de vos applications Redis - tout dans cet article ️ Cliquez pour tweeter

Redis est le meilleur dans un conteneur

Redis est l'une des images Docker les plus populaires du registre Docker, avec plus d'un milliard de téléchargements. La raison de la conteneurisation des applications Redis est d'obtenir les avantages de Docker et le support de la communauté pour les cas d'utilisation Redis les plus courants.

L'image Redis Docker dispose d'une communauté open source qui crée et maintient une documentation claire. Et pour couronner le tout, Docker est très fiable et permet une utilisation facile et flexible.

Facilité d'utilisation

Docker isole les environnements des applications et des services exécutés dans des conteneurs. L'isolation signifie que vous pouvez empaqueter, créer et expédier des images Redis qui fonctionnent quel que soit le système d'exploitation hôte, ce qui facilite le développement et l'exécution d'applications Redis dans Docker. De plus, Docker Desktop simplifie la mise en place d'un environnement de développement local cohérent, ce qui est particulièrement utile pour les grandes équipes.

Sécurité:

Vous pouvez rechercher des failles de sécurité avec Redis dans un conteneur. Docker utilise Snyk, un outil qui offre une visibilité sur la sécurité des images Docker. Il analyse les conteneurs Docker et fournit des détails et des mesures correctives en cas d'images corrompues. Docker peut également générer une nomenclature logicielle (SBOM) pour analyser toutes les dépendances utilisées dans la création d'images de conteneurs, bien que ce soit encore expérimental.

La flexibilité

Docker est disponible pour la plupart des systèmes d'exploitation et applications basés sur Unix et Windows. Étant donné que vous utilisez des conteneurs pour isoler le logiciel de son environnement afin de vous assurer qu'il fonctionne avec tous les systèmes, les applications et les services Redis fonctionnent toujours malgré l'infrastructure.

Fiabilité

Docker vous permet d'exécuter n'importe quelle charge de travail conteneurisée dans n'importe quel environnement de manière fiable. Redis est fiable dans Docker car les conteneurs Docker prennent périodiquement des instantanés de l'image du conteneur, ce qui vous permet de revenir à ces instantanés en cas de base de données mauvaise ou corrompue. Vous pouvez également créer un volume Docker en montant un répertoire contenant le fichier de base de données Redis à l'intérieur du conteneur.

Un volume Docker permet de protéger le conteneur de toute forme de perte de données accidentelle. Cependant, une mise en garde est que les volumes Docker n'incluent pas d'instantanés d'image. Vous devez enregistrer ou sauvegarder manuellement les données dans votre fichier de base de données Redis périodiquement.

Comment utiliser Redis avec Docker

Pour placer votre magasin Redis dans un conteneur Docker, vous devez avoir Docker dans l'environnement cible. Les instructions suivantes vous montrent comment installer Docker sous Windows.

Vous pouvez suivre un guide sur le site Web de Docker pour un système d'exploitation Unix ou basé sur Unix. Après l'installation et la configuration, vous pouvez créer un réseau dans votre conteneur Docker. Ensuite, vous pouvez installer Redis et créer une base de données. Enfin, vous pouvez effectuer des opérations sur votre base de données Redis.

Tout d'abord, installez Docker sur votre système d'exploitation. En option, accédez au Docker Hub et créez un compte. Vous avez besoin d'un compte pour créer et publier vos images.

Formulaire d'inscription au hub Docker
Hub Docker

Après avoir créé un compte, connectez-vous à Docker Hub et téléchargez la dernière version de Docker Desktop de votre système d'exploitation.

Page de téléchargement de Docker Desktop avec des options pour les systèmes d'exploitation.
Page de téléchargement Docker

Après la procédure d'installation, accédez à la fenêtre de votre terminal pour voir si le moteur Docker est prêt à fonctionner et entrez la commande suivante :

 docker --version
Vérifier la version de Docker installée
Version Docker installée

Tapez ensuite : docker-compose --version .

Vérifier la version de Compose installée avec Docker
Compose installé avec Docker

Compose est un outil permettant de définir et d'exécuter des applications Docker multi-conteneurs à l'aide de fichiers YAML, que vous utilisez pour configurer les services d'application.

Vous pouvez exécuter un Dockerized Redis pour valider que le moteur Docker est opérationnel à l'aide du code ci-dessous. Cet exemple exécute l'image Redis à partir de Docker Hub et la nomme my-redis-container .

 docker run --name my-redis-container -d redis
Exécutez l'image Redis à partir de Docker Hub nommée my-redis-container
Image Redis de Docker Hub nommée my-redis-container

Comme vous n'avez pas l'image localement, Docker extrait l'image Redis du Docker Hub.

Maintenant, vous pouvez ouvrir Docker Desktop pour confirmer qu'il a extrait l'image Redis. Sur le tableau de bord, cliquez sur Images dans le panneau de gauche.

Vérifiez que votre image Redis est opérationnelle à partir de Docker Desktop
Bureau Docker

Maintenant, vous pouvez créer un réseau. Notez que le pilote Docker utilise le pont ou les pilotes réseau intégrés de superposition pour créer un réseau Docker. Vous pouvez également installer et utiliser un pilote réseau tiers.

La différence est que les réseaux de pont sont isolés sur une seule installation Docker Engine, tandis que les réseaux superposés s'étendent sur plusieurs hôtes Docker, chacun exécutant un moteur.

Taper:

 docker network create -d bridge kinsta-demo-network
Créer un nouveau réseau Docker avec le pilote de pont
Réseau Docker avec le pilote de pont

Si vous ne spécifiez aucun pilote par défaut, Docker utilise le pilote de pont pour créer un nouveau réseau car il crée automatiquement le pilote de pont lorsque vous installez le moteur Docker. Cependant, si vous exécutez un conteneur Docker avec la commande Docker run, il n'utilisera pas ce réseau.

Maintenant que vous disposez d'un réseau, l'installation de Redis dans le conteneur Docker est la prochaine étape. Pour cela, tapez : docker pull redis .

Extraire l'image Redis du Docker Hub
Extraire l'image Redis du Docker Hub

Pour vérifier que l'image Redis est correctement installée, exécutez l'une des commandes suivantes :

 docker images
 docker image ls
Répertorier les images Docker disponibles dans le terminal de l'utilisateur
Images Docker disponibles dans le terminal de l'utilisateur


Ensuite, vous créez et démarrez le conteneur Redis. Pour ce faire, exécutez la commande suivante :
 docker run -it –name dev_kinsta_redis_container -d redis
Créer et exécuter le conteneur Docker
Conteneur Docker

Vérifiez maintenant que Redis est en cours d'exécution dans le conteneur. Pour ce faire, tapez : docker ps .

Vérifier que Redis est opérationnel dans un conteneur
Vérifier que Redis est opérationnel dans un conteneur

Maintenant que vous avez confirmé que votre conteneur Docker est opérationnel, vous pouvez ajouter le conteneur au réseau. Tapez : docker network connect .

Ajouter un conteneur Docker au réseau Docker créé
Ajouter un conteneur Docker au réseau Docker créé

Lorsque tout fonctionne comme prévu, l'étape suivante consiste à vérifier que votre serveur Redis exécuté dans Docker est prêt à accepter les connexions. Pour ce faire, utilisez docker logs .

Vérifiez que l'image Redis s'exécute dans le conteneur Docker
Vérifiez que l'image Redis s'exécute dans le conteneur Docker

Ensuite, vous devez créer une base de données car vous avez besoin d'un moyen de vous connecter au conteneur Redis pour exécuter des commandes sur le serveur. Pour cela, tapez : docker exec -it bash . Vous pouvez utiliser le nom du conteneur et l'ID du conteneur de manière interchangeable.

Connectez-vous à l'instance de conteneur Redis
Connectez-vous à l'instance de conteneur Redis.

Dans le conteneur, utilisez l'interface de ligne de commande pour exécuter des commandes. Notez que Redis a automatiquement installé les hôtes Docker. Pour utiliser Redis-CLI, tapez : redis-cli .

Utiliser la CLI Redis pour exécuter les commandes Redis
Utiliser la CLI Redis pour exécuter les commandes Redis

Cela vous connecte au port par défaut pour Redis sur l'hôte local. Tapez : ping , et la réponse devrait être pong .

Testez pour voir si la connexion Redis est opérationnelle
Testez pour voir si la connexion Redis est opérationnelle

Ensuite, sélectionnez une base de données dans votre serveur Redis en tapant select . Bien que la base de données par défaut soit 0 , sélectionnez db 1 .

Sélectionnez une base de données Redis particulière
Sélectionnez une base de données Redis particulière

Ensuite, insérez les données dans la base de données. Utilisez la commande Redis SET . Pour ce faire, tapez SET <key> <value> .

Par exemple:

 SET mykey "Hello"

Pour obtenir la même clé, tapez :

 get myKey
Insérer et récupérer des données depuis Redis
Insérer et récupérer des données depuis Redis

Pour obtenir la valeur de la clé, exécutez get . Cela renvoie la valeur. Ensuite, surveillez votre base de données Redis en tapant MONITOR .

Surveiller la base de données Redis
Surveiller la base de données Redis

Enfin, arrêtez le serveur Redis en quittant la CLI. Tapez exit deux fois pour quitter la CLI et Redis.

Quitter la CLI Redis
Quitter la CLI Redis

Enfin, arrêtez l'exécution du conteneur Redis en tapant docker stop .

Exécutez la commande pour arrêter l'exécution du conteneur Docker
Exécutez la commande pour arrêter l'exécution du conteneur Docker

Redis avec DevKinsta

DevKinsta vous permet de connecter un site WordPress à une base de données Redis. Avec DevKinsta, le module complémentaire Redis fonctionne de manière transparente comme un cache d'objets pour conserver les données sur plusieurs chargements de page. Cela signifie qu'en utilisant le module complémentaire Redis, vous pouvez utiliser le cache pour réutiliser des objets au lieu d'interroger constamment la base de données MySQL.

Après avoir téléchargé et configuré DevKinsta, installez Docker Desktop en tant que dépendance, qu'il utilise pour créer des fichiers d'environnement locaux dans un conteneur. Avec cette configuration, vous pouvez configurer le module complémentaire Redis dans Devkinsta.

Par conséquent, le module complémentaire Redis pour DevKinsta peut être utilisé comme source secondaire, réduisant la charge sur la base de données principale, augmentant les temps de réponse et accélérant le fonctionnement de l'application.

Cela se traduit par une gestion plus efficace de la charge et de la mise à l'échelle de l'application. Consultez cet article pour utiliser le plugin Redis avec votre site Web.

Redis + Docker = un match fait au paradis ! Voici pourquoi la conteneurisation de l'application Redis est la voie à suivre et comment en tirer le meilleur parti. Cliquez pour tweeter

Résumé

L'exécution de Redis dans un conteneur Docker présente de nombreux avantages. Il offre un environnement sandbox pour vos applications, vous n'avez donc plus à vous soucier de la plate-forme sur laquelle vous déployez vos applications. De plus, Docker offre une facilité d'utilisation, une flexibilité et une grande fiabilité.

En ce qui concerne la sécurité, vous pouvez vérifier et analyser les vulnérabilités de sécurité avec Synk, un outil offrant une visibilité sur la sécurité des images Docker. Et en ce qui concerne la flexibilité, Docker fonctionne pour la plupart des systèmes d'exploitation et applications basés sur Unix et Windows. Cette flexibilité signifie que les applications ou services dockerisés ou conteneurisés s'exécutent toujours quel que soit le système d'exploitation.

Il est facile d'utiliser Docker et le module complémentaire Redis avec DevKinsta, qui lance un site WordPress dockerisé localement lorsque vous le démarrez. Découvrez DevKinsta et le module complémentaire Redis pour obtenir la puissance de Redis dans Docker dès aujourd'hui.