Redis, base de données NoSQL en mémoire particulièrement rapide, trouve toute son efficacité lorsqu’elle est déployée au sein de conteneurs Docker. Ce couplage facilite la mise en place d’une solution hautement disponible, capable de gérer de grandes quantités de données tout en offrant des performances de lecture et d’écriture remarquables. Docker Compose simplifie l’orchestration de plusieurs services, dont Redis, dans des environnements adaptés au développement comme à la production. Cette approche rend la mise à l’échelle horizontale plus accessible, permettant d’assembler aisément des clusters et de configurer des instances Redis sécurisées avec persistance des données.
L’article en bref
Déployer un serveur Redis avec Docker Compose devient un processus clair et structuré, accessible même aux débutants. L’orchestration par Docker Compose simplifie la gestion des clusters et la sécurisation de Redis. Ce guide propose des conseils concrets pour intégrer Redis dans un environnement Docker fiable et évolutif.
- Lancement rapide de Redis en conteneur : Comment démarrer Redis avec Docker en quelques commandes simples
- Configuration personnalisée facile : Intégrer un fichier redis.conf pour adapter la sécurité et les performances
- Orchestration avancée : Déploiement d’un cluster Redis multi-nœuds avec Docker Compose
- Accessibilité inter-conteneurs et distante : Connexions sécurisées à Redis depuis d’autres conteneurs ou serveurs distants
Assurer un déploiement fiable et performant de Redis grâce à Docker Compose, voilà l’objectif pratico-pratique de ce tutoriel.
Déployer un serveur Redis avec Docker : premières étapes
Le déploiement d’un serveur Redis via Docker commence par la vérification du bon fonctionnement du service Docker. La commande sudo systemctl status docker confirme que le moteur de virtualisation est actif. Ensuite, lancer un conteneur Redis s’effectue aisément avec sudo docker run –name my-first-redis -d redis. Cette instruction télécharge par défaut la dernière version officielle de Redis et démarre le service dans un conteneur nommé my-first-redis. Pour s’assurer du bon démarrage, il convient de vérifier les conteneurs actifs avec sudo docker ps, qui affiche notamment le port Redis (6379 par défaut) et l’ID unique du conteneur.
Interagir avec Redis à l’aide de redis-cli dans un conteneur
La connexion à Redis s’effectue via redis-cli, appelé à l’intérieur du conteneur avec la commande sudo docker exec -it my-first-redis sh pour accéder au shell, puis en tapant redis-cli. Tester la connexion se traduit par la commande ping, répondue par PONG en cas de succès. Manipuler les données s’effectue par des opérations simples, comme set name pnap pour stocker une valeur, et get name pour la récupérer. Quitter le shell et le conteneur s’opère respectivement avec quit et exit pour revenir au terminal local.
Personnaliser la configuration Redis avec Docker Compose
Redis offre la possibilité d’être configuré via un fichier redis.conf, permettant notamment d’activer l’authentification, de limiter certaines commandes et d’optimiser la performance. Le fichier peut être intégré dans un conteneur Docker en utilisant une option -v pour monter ce fichier au bon emplacement :
- Commande d’exemple : sudo docker run –name my-first-redis -v /chemin/vers/redis.conf:/usr/local/etc/redis/redis.conf -d redis
- Adapter le chemin local au système
- Modifier les paramètres de ports dans redis.conf pour correspondre à ceux exposés dans Docker
Cette approche est fondamentale lors de la mise en place d’un cluster Redis, où chaque nœud nécessite une configuration propre adaptée à son port et à son environnement.
Déployer un cluster Redis avec Docker Compose
Orchestrer plusieurs nœuds Redis en cluster implique la gestion d’adresses IP statiques et de ports dédiés pour éviter tout conflit. Un réseau Docker de sous-réseau spécifique, tel qu’un bridge avec une configuration IPAM précise, permet de maintenir l’ordre et la découverte des nœuds. Chaque service correspondant à un nœud Redis monte son propre volume de données pour garantir la persistance.
Le fichier docker-compose.yml comprend ainsi :
| Service | Description | Configuration clé |
|---|---|---|
| redis-node-1 à redis-node-6 | Nœuds Redis individuels avec configuration propre | Port, volume, conf. redis.conf |
| redis-cluster | Service qui crée le cluster à partir des nœuds | Commande redis-cli cluster create avec adresses IP et ports |
| app | Application NodeJS consommant Redis | Variables d’environnement des nœuds et dépendances |
| db | Base MariaDB pour stockage relationnel | Volumes et variables d’environnement pour sécurité |
Cette préparation permet un déploiement avancé et robuste, capable de supporter des charges importantes tout en assurant une cohérence des données entre nœuds.
Connecter Redis entre conteneurs et depuis l’extérieur
Une des forces de Docker réside dans la possibilité d’interconnexion aisée. Pour accéder à Redis depuis un second conteneur, il suffit de lier les conteneurs au moyen de l’option –link lors du lancement. Une fois connecté, le second conteneur peut interagir avec la base Redis du premier à travers son alias réseau. Voici les étapes essentielles :
- Lancer un nouveau conteneur avec lien : sudo docker run -it –rm –name second-redis –link my-first-redis:redis -d redis
- Accéder au shell du second conteneur : sudo docker exec -it second-redis sh
- Utiliser redis-cli -h redis pour se connecter au serveur Redis nommé
- Contrôler les données avec des commandes classiques (ex. get)
- Quitter proprement quand les tests sont terminés
L’accès à Redis depuis un serveur distant est aussi possible via le transfert de port Docker. Cette méthode requiert d’expliciter un port externe lors de l’exécution du conteneur Redis, par exemple -p 6380:6379. Il est alors possible d’accéder au serveur Redis avec les outils clients habituels en précisant l’adresse IP ou le nom d’hôte et le port associé.
Liste d’astuces pour un déploiement Redis réussi avec Docker Compose
- Utiliser des adresses IP statiques dans un réseau Docker dédié pour faciliter la configuration du cluster.
- Correspondance stricte entre les ports configurés dans les fichiers redis.conf et ceux exposés dans docker-compose.yml.
- Monter des volumes de données pour assurer la persistance et éviter des pertes lors des redémarrages.
- Contrôler régulièrement les logs des conteneurs pour anticiper des problèmes d’état ou de communication.
- Automatiser la création du cluster via un service dédié dans docker-compose pour gagner en fiabilité.
- Protéger l’accès Redis avec des paramètres d’authentification dans redis.conf lorsque cela est possible.
Pourquoi utiliser Docker Compose pour Redis plutôt qu’un simple docker run ?
Docker Compose permet d’orchestrer plusieurs conteneurs liés, facilitant la gestion d’un cluster Redis et ses dépendances dans une configuration centralisée.
Comment garantir la persistance des données Redis dans Docker ?
En montant des volumes de données liés à chaque nœud Redis, il est possible de conserver les données même lors d’un redémarrage des conteneurs.
Que faire si un nœud Redis du cluster devient injoignable ?
Redis Cluster tolère certains nœuds injoignables en répliquant les données. Cependant, il faut rapidement identifier et redémarrer ou remplacer le nœud défaillant pour maintenir la cohérence.
Le transfert de port Docker expose-t-il Redis à des risques ?
Oui, exposer Redis sur un port externe augmente les risques d’attaques. Il est conseillé d’utiliser un mot de passe et de limiter l’accès via firewall ou VPN.
Peut-on utiliser d’autres bases de données en parallèle avec Redis dans Docker Compose ?
Absolument, Docker Compose facilite la coexistence de plusieurs services comme MariaDB et Redis, en configurant leur communication via un réseau partagé.




