Comment déployer rapidement Redis en tant que conteneur Docker

Redis est un magasin clé-valeur en mémoire qui peut enregistrer des structures de données abstraites avec des performances élevées. Le logiciel open source est généralement utilisé pour les fonctions de base de données, de messagerie et de mise en cache.

Docker est la principale boîte à outils pour l’emballage d’applications dans des conteneurs. Il vous permet d’isoler les composants logiciels dans des environnements indépendants avec leur propre système de fichiers.

Dans ce guide, nous utiliserons Docker pour déployer rapidement Redis à l’aide de l’image officielle sur Docker Hub . Par rapport à l’installation bare metal, Docker permet une procédure de configuration plus simple et ne polluera pas votre hôte avec de nouveaux packages. Assurez-vous d’avoir une installation Docker fonctionnelle sur votre hôte avant de continuer.

Commencer

L’image Redis comprend à la fois le composant serveur et la CLI officielle. Il est préconfiguré pour lancer le serveur avec des valeurs de configuration par défaut fonctionnelles lorsque vous démarrez un nouveau conteneur.

Des variantes de l’image sont disponibles pour couvrir différentes versions de Redis (5.0 et 6.0) et différents systèmes d’exploitation (Alpine et Debian). Parcourez la liste des balises pour trouver la meilleure option pour votre environnement.

Le déploiement le plus simple est le suivant :

docker run --name redis -d -p 6379:6379 redis:6.0

PUBLICITÉ

Cela démarre un nouveau conteneur appelé redisexécutant Redis 6.0. Le -ddrapeau est utilisé pour se détacher du conteneur. Le serveur restera en arrière-plan jusqu’à ce que vous arrêtiez le conteneur avec docker stop redis.

Redis écoute sur le port 6379 par défaut. Le -pdrapeau lie ce port à votre hôte. Vos applications pourront accéder à Redis sur localhost:6379. Attention cependant, ce n’est pas sécurisé – si votre machine est exposée à Internet, n’importe qui peut accéder à vos données Redis !

READ  10 outils qui complètent Docker

Stockage de données

Redis prend en charge plusieurs mécanismes de persistance qui peuvent enregistrer votre base de données en mémoire sur le disque. Les données seront enregistrées dans le /datarépertoire du conteneur. Les conteneurs Docker étant éphémères, vous devez monter un volume dans ce répertoire. Sinon, vos données seront perdues lorsque votre conteneur s’arrêtera.

docker run --name redis -d \
    -v redis-data:/data
    redis:6.0 --save 60 1

L’ --saveindicateur est transmis au serveur Redis. Il configure la stratégie de persistance à utiliser. Cet exemple écrit un instantané de votre base de données toutes les 60secondes. L’opération est ignorée à moins que l’ 1écriture de la base de données n’ait eu lieu depuis le dernier instantané.

Un volume Docker appelé redis-dataest créé par le -vdrapeau. Cela stockera vos données en dehors du conteneur afin qu’elles restent accessibles après les redémarrages. Le volume persistera jusqu’à ce qu’il soit supprimé en exécutant docker volumes rm redis-data.

Configuration de votre serveur

Le moyen le plus rapide d’ajouter des paramètres de configuration consiste à transmettre des arguments CLI au serveur Redis dans le cadre de votre docker runcommande. Ceci est illustré par l’ --saveexemple ci-dessus. Tout ce qui se trouve après le nom de l’image docker runsera transmis à la commande exécutée à l’intérieur du conteneur. Dans le cas de l’image Redis, cette commande est le serveur Redis.PUBLICITÉ

L’utilisation des indicateurs CLI devient rapidement répétitive. Vous pouvez faire en sorte que Redis utilise un fichier de configuration en passant un chemin comme premier argument du serveur. Ce fichier se trouve par convention à l’adresse /usr/local/etc/redis/redis.conf. Utilisez un montage de liaison Docker pour obtenir un montage redis.confde votre système de fichiers local dans le conteneur :

docker run --name redis -d \
    -v redis-data:/data
    -v ./redis-conf:/usr/local/etc/redis
    redis:6.0 /usr/local/etc/redis.conf

Placez un redis.confinside redis-confdans votre répertoire de travail. Docker montera ce chemin dans le conteneur, donnant à Redis l’accès au fichier spécifié dans la docker runcommande.

READ  10 outils qui complètent Docker

Gestion de la sécurité Redis

Les images Redis Docker sont configurées pour exécuter Redis en mode non protégé par défaut. Cela facilite l’accès au serveur Redis à partir de vos autres conteneurs Docker, en utilisant les réseaux Docker. Cependant, cela signifie également que tout ce qui peut atteindre votre conteneur aura un accès complet à vos données.

Le mode protégé est une fonctionnalité Redis qui ne répond qu’aux requêtes non authentifiées émises par les adresses de bouclage de votre hôte, telles que localhost. Vous pouvez l’activer en ajoutant protected-mode yesà votre fichier redis.conf. Lorsqu’il est utilisé avec une installation Dockerisée, Redis n’est accessible que dans son propre conteneur, ce qui n’est généralement pas idéal.

Vous pouvez configurer l’authentification par mot de passe de base à la place en ajoutant requirepass exampleà votre fichier redis.conf. Redis n’acceptera que les requêtes des clients qui présentent le mot de passe configuré. Redis 6 prend également en charge un contrôle d’accès plus complet qui vous permet de configurer plusieurs comptes d’utilisateurs avec des privilèges différents.

Pour utiliser l’authentification, suivez les instructions de la section précédente pour créer un fichier de configuration Redis et le monter dans votre conteneur. Si vous ne souhaitez pas configurer de mot de passe, protégez votre installation en la joignant uniquement aux réseaux Docker nécessaires à votre application. Ne liez pas le port 6379 à votre hôte sans d’abord configurer l’authentification.

Utilisation de votre installation Redis

Maintenant que Redis est entièrement configuré, vous pouvez y accéder depuis vos clients. Si vous vous connectez depuis votre hébergeur, vous pouvez utiliser l’IP du conteneur Docker (visible en exécutant docker inspect redis, ajusté pour le nom de votre conteneur) et le port 6379.PUBLICITÉ

READ  10 outils qui complètent Docker

Pour accéder à Redis à partir d’un autre conteneur Docker, il est préférable de joindre les deux conteneurs dans un réseau Docker :

docker network create redis
docker run --name redis --network redis -d redis:6.0
docker run --name api --network redis -d my-api:latest

Votre conteneur d’applications pourra désormais atteindre Redis via le port 6379 sur le redisnom d’hôte. Docker rend les noms de conteneurs accessibles en tant que noms d’hôtes lorsqu’ils partagent un réseau Docker.

Vous pouvez interagir manuellement avec votre base de données à l’aide du redis-clibinaire inclus dans l’image du conteneur. Démarrez votre conteneur en mode détaché ( -d) pour qu’il s’exécute en arrière-plan. Ensuite, utilisez docker execpour exécuter la redis-clicommande :

docker exec -it redis-container redis-cli

Cela vous amènera à une session Redis CLI au sein de votre conteneur.

Résumé

Docker permet de démarrer rapidement et facilement une nouvelle instance Redis sans installer le logiciel sur votre machine. Utilisez l’image Docker officielle pour démarrer votre conteneur, puis ajoutez des indicateurs de commande ou montez un fichier de configuration en fonction de vos besoins.

Deux choses à toujours garder à l’esprit sont le stockage et la sécurité : si vous devez utiliser les fonctionnalités de persistance Redis, vous devez utiliser un volume Docker pour éviter de perdre vos données. N’oubliez pas que Dockerized Redis passe par défaut en mode non protégé sans authentification, donc exposer le port 6379 pourrait avoir des conséquences désastreuses dans le pire des cas.

Si vous avez aimé cet article, veuillez- vous abonner à notre communauté reddit pour en discuter. Vous pouvez également nous retrouver sur Twitter et Facebook .

5/5 - (1 vote)

Mises à jour de la newsletter

Saisissez votre adresse e-mail ci-dessous pour vous abonner à notre newsletter

Laisser un commentaire