Comment et pourquoi exécuter Redis dans Docker
Publié: 2023-05-02Redis 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 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.
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.
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
Tapez ensuite : docker-compose --version
.
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
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.
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
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
.
Pour vérifier que l'image Redis est correctement installée, exécutez l'une des commandes suivantes :
docker images
docker image ls
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
Vérifiez maintenant que Redis est en cours d'exécution dans le conteneur. Pour ce faire, tapez : docker ps
.
Maintenant que vous avez confirmé que votre conteneur Docker est opérationnel, vous pouvez ajouter le conteneur au réseau. Tapez : docker network connect
.
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
.
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.
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
.
Cela vous connecte au port par défaut pour Redis sur l'hôte local. Tapez : ping
, et la réponse devrait être pong
.
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
.
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
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
.
Enfin, arrêtez le serveur Redis en quittant la CLI. Tapez exit
deux fois pour quitter la CLI et Redis.
Enfin, arrêtez l'exécution du conteneur Redis en tapant docker stop
.
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.
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.