Déployer la configuration maître-esclave redis dans Docker

Description environnementale:

  • Serveur Cloud Alibaba
  • Ubuntu 16.04
  • docker

 

1. Tirez l'image Redis

docker pull redis

 

 

2. Configurez le fichier de configuration de démarrage de Redis, ici je crée un répertoire dédié pour stocker les données et la configuration liées à Redis

mkdir / docker / redis

Téléchargez le fichier de configuration de démarrage du service dans ce répertoire

wget http: // download.redis.io/redis-stable/redis.conf

Après le téléchargement, entrez le fichier pour modifier les 3 paramètres suivants (à l'état non éditable, utilisez / bind pour rechercher la position de la chaîne)

Vim / Docker / Redis / redis.conf 
# modifier les trois paramètres de configuration suivants # Lier
127,0 . 0.1 # Si l' option bind est vide, permet toutes les connexions des interfaces réseau disponibles protégées - MODE NO # mode de protection, si elle est oui , Autoriser uniquement les clients locaux à se connecter par appendice uniquement oui # Après ouverture, Redis écrira chaque donnée écrite dans le fichier appendonly.aof après réception. Chaque fois que Redis lira les données de ce fichier en mémoire

 

 

3. Créez un nouveau dossier maître (redis6379) sous ce répertoire et copiez le fichier conf ci-dessus dans le dossier. Le chemin du fichier conf maître est

/docker/redis/redis6379/redis.conf

 

 

4. Utilisez conf pour créer un conteneur maître

# -restart always (cette image démarre également automatiquement au démarrage de docker) 
# --name Le nom du conteneur est redis- 6379 
# -p mappe le port local 6379 au port de conteneur 6379 
# -v se lie au répertoire principal / docker / redis / redis6379 mis en correspondance / docker de données 
# - conteneur de fond D, et retourne le conteneur ID 
# image spécifiée Redis 
# conf utiliser le service Redis -server / données / redis.conf Docker rUN

 --restart toujours --name redis- 6379 -p 6379 : 6379 -v / docker / redis / redis6379: / data -d redis redis-server /data/redis.conf

 

 

5. Afficher le démarrage du conteneur

root @ iZ282zj76jqZ: / docker / redis / redis6379 # docker ps | grep redis- 6379 
792067d225e6 redis                " docker-entrypoint.s ... "    2 hours ago Jusqu'à 2 heures           0.0 . 0,0 : 6379 -> 6379 / tcp redis- 6379

Afficher l'IP du conteneur maître pour configurer les paramètres dans Salve

# Voir l'IP du conteneur principal, 
# docker inspecter redis-6379 Voir IPAdress docker
inspect --format = ' {{.NetworkSettings.IPAddress}} ' redis- 6379 # 192.168 . 0.4 dans la configuration NetworkSettings

 

 

6. Créez un dossier Salve (redis6380, redis6381, redis6382), copiez les fichiers redis.conf ci-dessus dans trois dossiers et modifiez la configuration

vim / docker / redis / redis.conf 
 
# Modifiez les quatre paramètres de configuration suivants 
#bind 127.0 . 0.1         # Si l'option de liaison est vide, toutes les connexions des interfaces réseau disponibles sont autorisées
 protégées - mode non
 #Mode protégé       , si oui , Autoriser uniquement les clients locaux à se connecter
 appendonly oui          # Après ouverture, Redis écrira les données écrites à chaque fois dans le fichier appendonly.aof après réception, et Redis lira d'abord les données de ce fichier dans la mémoire à chaque démarrage 
# réplique de <IP maître> <port maître> 
réplique de 192.168 . 0.4  6379  # port IP hôte (maître) Redis

Démarrer trois services Salve

docker run --restart always --name redis- 6380 -p 6380 : 6379 -v / docker / redis / redis6380: / data -d redis redis-server / data / redis.conf 
docker run --restart always --name redis - 6381 -p 6381 : 6379 -v / docker / redis / redis6381: / data -d redis redis-server / data / redis.conf 
docker run --restart always --name redis- 6382 -p 6382 : 6379 -v / docker / redis / redis6382: / data -d redis redis-server /data/redis.conf

 

 

7. Afficher les services de conteneurs

root @ iZ282zj76jqZ: / docker / redis # docker ps 
CONTENANT ID IMAGE COMMANDE CRÉÉE NOMS 
DES PORTS DE STATUT 43488a8c668c redis                " docker-entrypoint.s… " il y a    3 secondes Up 1 seconde          0.0 . 0,0 : 6382 -> 6379 / tcp redis- 6382 
ca3caaa77f4a redis                " docker-entrypoint.s… " Il y a    2 heures Vers le haut Environ une heure     0,0 . 0,0 :6381 -> 6379 / tcp 
redis- 6381 792067d225e6 redis                " docker-entrypoint.s… " Il y a    2 heures Up 2 hours           0.0 . 0.0 : 6379 -> 6379 / tcp 
redis- 6379 979318c633be redis                " docker-entrypoint.s… " Il y a    2 heures Up Environ une heure     0.0 . 0,0 : 6380 -> 6379 / tcp redis- 6380

Entrez dans le conteneur principal pour faire fonctionner Redis

root @ iZ282zj76jqZ: / docker / Redis # docker exec -it redis- 6379 / bin / bash 
root @ 792067d225e6: / data # redis- cli
 127,0 . 0.1 : 6379 > info replication 
# Rôle de réplication : master 
connected_slaves: 
3 
slave0: ip = 192.168 . 0,3 , port = 6379 , état = en ligne, décalage = 7129 , décalage = 1 
esclave1: ip = 192,168 . 0,6 , port = 6379 , état = en ligne, décalage = 7129 , décalage =0 
slave2: ip = 192.168 . 0,5 , port = 6379 , state = ligne, décalage = 7129 , lag = 0 
master_replid: 09e8f31f23d920034b8f5e20749489ffff3fec17 
master_replid2: 0000000000000000000000000000000000000000 
master_repl_offset: 7143 
second_repl_offset: - 1 
repl_backlog_active: 1 
repl_backlog_size: 1048576 
repl_backlog_first_byte_offset: 6892 
repl_backlog_histlen: 252 
127,0 . 0,1 : 6379 > dbsize 
(entier) 3

Entrer dans l'opération Salve container Redis

root @ iZ282zj76jqZ: ~ # docker exec -it redis- 6381 / bin / bash 
root @ ca3caaa77f4a: / data # redis- cli
 127,0 . 0.1 : 6379 > info replication 
# Rôle de réplication : slave master_host: 

192.168 . 0.4 
master_port: 6379 
master_link_status: down 
master_last_io_seconds_ago: - 1 
master_sync_in_progress: 0 
slave_repl_offset: 6891 
master_link_down_since_seconds: 8 
slave_priority: 100 
slave_read_only:1 
connected_slaves: 0 
master_replid: 7d6ef858609048f3210a178772ea98ac20446c9e 
master_replid2: 0000000000000000000000000000000000000000 
master_repl_offset: 6891 
second_repl_offset: - 1 
repl_backlog_active: 1 
repl_backlog_size: 1048576 
repl_backlog_first_byte_offset: 1027 
repl_backlog_histlen: 5865 
127,0 . 0,1 : 6379 > dbsize 
(entier) 3

 

 

8. Vous pouvez également utiliser directement la commande docker pour faire fonctionner Redis

# 
-it réaffecte un pseudo terminal d'entrée au conteneur et exécute le conteneur en mode interactif 
# Nom du conteneur redis - 6379 
# redis - cli set Key Value docker exec -it redis- 6379 redis-cli set name tomkluas

 

 

Je suppose que tu aimes

Origine www.cnblogs.com/tomkluas/p/12682489.html
conseillé
Classement