Table des matières
1. Extrayez l'image
2 Créez un conteneur Redis
3. Démarrez et formez un cluster
Démarrez le conteneur
组建集群
6、测试集群
4、存在的问题
1、停止已运行的容器
2、删除之前创建的容器
3、重新基于host模式创建
4、启动容器并组建集群
5、查看集群信息
🎜🎜Une solution Il s'agit du type de connexion réseau qui permet à Docker d'utiliser le mode hôte. Les conteneurs créés par Docker en utilisant le mode hôte. n'a pas Avec son propre espace de noms réseau indépendant, il partage un espace réseau avec la machine physique, puis peut partager tous les ports et IP de la machine physique, afin que le réseau public puisse accéder directement au conteneur Bien que cette méthode présente des risques pour la sécurité, aucun autre mode réalisable n'a été trouvé jusqu'à présent. 🎜🎜 Concernant les problèmes existants, nous avons réadopté le host mode et recréé le conteneur : 🎜🎜1 Arrêtez le conteneur en cours d'exécution 🎜rrreee🎜2 Supprimez le conteneur précédemment créé 🎜rrreee🎜3. La création rebasée de 🎜rrreee🎜 en mode hôte est différente de la commande de création précédente. Premièrement, le type de réseau de --net est spécifié comme host. Dans ce cas, le mappage de port n'est pas requis. , comme -p 6379:6379, car le service de port de conteneur doit être partagé en externe à ce moment-là, il vous suffit donc de spécifier le port exposé en externe -p 6379, -p 6380 etc. 🎜🎜Comment construire un cluster Redis basé sur Docker🎜🎜4. Démarrez le conteneur Et créez un cluster🎜rrreee🎜Comment créer un cluster Redis basé sur Docker🎜🎜 5. Vérifiez les informations du cluster🎜rrreee🎜6. Testez le cluster🎜🎜Utilisez redis-cli -c pour vous connecter au cluster, set a valeur, puis récupérez la valeur des autres nœuds. Vérifiez si cela a réussi : 🎜rrreee🎜🎜🎜" >4. Problèmes existants🎜🎜Suivez les étapes ci-dessus, bien que le cluster soit établi avec succès, il reste encore quelques problèmes, car l'adresse IP dans le nœud du cluster est allouée en interne par le dock, tel que : 172.17.0.2 etc. Si le projet utilisant redis cluster n'est pas sur le même serveur que le cluster, alors le projet ne peut pas utiliser le cluster car il est inaccessible. 🎜🎜Comment construire un cluster Redis basé sur Docker🎜🎜Une solution Il s'agit du type de connexion réseau qui permet à Docker d'utiliser le mode hôte. Les conteneurs créés par Docker en utilisant le mode hôte. n'a pas Avec son propre espace de noms réseau indépendant, il partage un espace réseau avec la machine physique, puis peut partager tous les ports et IP de la machine physique, afin que le réseau public puisse accéder directement au conteneur Bien que cette méthode présente des risques pour la sécurité, aucun autre mode réalisable n'a été trouvé jusqu'à présent. 🎜🎜 Concernant les problèmes existants, nous avons réadopté le host mode et recréé le conteneur : 🎜🎜1 Arrêtez le conteneur en cours d'exécution 🎜rrreee🎜2 Supprimez le conteneur précédemment créé 🎜rrreee🎜3. La création rebasée de 🎜rrreee🎜 en mode hôte est différente de la commande de création précédente. Premièrement, le type de réseau de --net est spécifié comme host. Dans ce cas, le mappage de port n'est pas requis. , comme -p 6379:6379, car le service de port de conteneur doit être partagé en externe à ce moment-là, il vous suffit donc de spécifier le port exposé en externe -p 6379, -p 6380 etc. 🎜🎜Comment construire un cluster Redis basé sur Docker🎜🎜4. Démarrez le conteneur Et créez un cluster🎜rrreee🎜Comment créer un cluster Redis basé sur Docker🎜🎜 5. Vérifiez les informations du cluster🎜rrreee🎜6. Testez le cluster🎜🎜Utilisez redis-cli -c pour vous connecter au cluster, set a valeur, puis récupérez la valeur des autres nœuds. Vérifiez si cela a réussi : 🎜rrreee🎜🎜🎜
Maison base de données Redis Comment créer un cluster Redis basé sur Docker

Comment créer un cluster Redis basé sur Docker

May 30, 2023 pm 12:46 PM
redis docker

Environnement : Docker + (Redis :5.0.5 * 3)

1. Extrayez l'image

docker  pull  redis:5.0.5
Copier après la connexion

Comment créer un cluster Redis basé sur Docker

2 Créez un conteneur Redis

Créez trois conteneurs Redis :

  • redis-node1 : 6379

    .
  • redis-node2 : 6380

  • redis-node3 : 6381

docker create --name redis-node1 -v /data/redis-data/node1:/data -p 6379:6379 redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-1.conf

docker create --name redis-node2 -v /data/redis-data/node2:/data -p 6380:6379 redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-2.conf

docker create --name redis-node3 -v /data/redis-data/node3:/data -p 6381:6379 redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-3.conf
Copier après la connexion

Comment créer un cluster Redis basé sur Docker

3. Démarrez et formez un cluster

Démarrez le conteneur

Faites d'abord passer la commande docker start </ code> Démarrez 3 conteneurs Redis : <code >docker start来启动3个Redis容器:

Comment créer un cluster Redis basé sur Docker

执行完运行命令后检查一下容器的启动情况:

Comment créer un cluster Redis basé sur Docker

如果出现上图情况,Exited (1) 3 seconds ago,可以通过 docker logs 查看:

Comment créer un cluster Redis basé sur Docker

如上提示的是权限问题,我们尝试修改一下权限:

chmod -R  777 /data
Copier après la connexion

启动成功后如下图所示:

Comment créer un cluster Redis basé sur Docker

组建集群

查看3个Redis在Docker中分配的ip结点信息:

执行「docker inspect redis-node1」得到 redis-node1 ip 信息为:172.17.0.4 
执行「docker inspect redis-node2」得到 redis-node2 ip 信息为:172.17.0.3 
执行「docker inspect redis-node3」得到 redis-node3 ip 信息为:172.17.0.2
Copier après la connexion

Comment créer un cluster Redis basé sur Docker

拿到 ip 信息后(每个人的ip信息可能不一样),接下来进入某一个容器进行组建集群:

# 这里以进入 node1 为例
docker exec -it redis-node1 /bin/bash

# 接着执行组建集群命令(请根据自己的ip信息进行拼接)
redis-cli --cluster create 172.17.0.2:6379  172.17.0.3:6379  172.17.0.4:6379 --cluster-replicas 0
Copier après la connexion

Comment créer un cluster Redis basé sur Docker

ok,此时集群搭建完了,我们接下来测试一下。

测试集群

使用 redis-cli -c 命令连接到集群结点,然后 set 值,set 值之后会自动重定向到 0.2 ip地址,然后通过 get 获取一下,获取成功证明集群有效。

Comment créer un cluster Redis basé sur Docker

4、存在的问题

按照如上的步骤,虽然集群搭建成功了,但其实还是有点问题的,由于集群结点中的 ip地址 是docket内部分配的,如:172.17.0.2 等,如果使用 redis集群 的项目跟集群不在一台服务器上,那么项目是没法使用集群的,因为是访问不通的。

Comment créer un cluster Redis basé sur Docker

一种解决方案是让Docker使用 host模式 的网络连接类型,Docker在使用host模式下创建的容器是没有自己独立的网络命名空间的,是跟物理机共享一个网络空间,进而可以共享物理机的所有端口与IP,这样就可以让公共网络直接访问容器了,尽管这种方式有安全隐患,但目前来说还没找到其他可行性模式。

就存在的问题我们重新采用 host模式,重新创建一下容器:

1、停止已运行的容器
docker stop redis-node1 redis-node2 redis-node3
Copier après la connexion
2、删除之前创建的容器
docker rm redis-node1 redis-node2 redis-node3

# 清空上面创建的配置文件
rm -rf /data/redis-data/node*
Copier après la connexion
3、重新基于host模式创建
docker create --name redis-node1 --net host -v /data/redis-data/node1:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-1.conf --port 6379

docker create --name redis-node2 --net host -v /data/redis-data/node2:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-2.conf --port 6380

docker create --name redis-node3 --net host -v /data/redis-data/node3:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-3.conf --port 6381
Copier après la connexion

跟之前创建命令不同,一是指定了 --net 网络类型为 host,二是这种情况下就不需要端口映射了,比如 -p 6379:6379,因为此时需要对外共享容器端口服务,所以只需要指定对外暴露的端口 -p 6379-p 6380 等。

Comment créer un cluster Redis basé sur Docker

4、启动容器并组建集群
# 启动命令
docker start redis-node1 redis-node2 redis-node3

# 进入某一个容器
docker exec -it redis-node1 /bin/bash

# 组建集群,10.211.55.4为当前物理机的ip地址
redis-cli --cluster create 10.211.55.4:6379  10.211.55.4:6380  10.211.55.4:6381 --cluster-replicas 0
Copier après la connexion

Comment créer un cluster Redis basé sur Docker

5、查看集群信息
root@CentOS7:/data# redis-cli
127.0.0.1:6379> cluster nodes
72c291c32815194b64d1f6d0fdf771f5cc04e14a 10.211.55.4:6380@16380 master - 0 1590905997358 2 connected 5461-10922
6a595b67bbff15c94e5874c2d2cd556d6a6a6c17 10.211.55.4:6381@16381 master - 0 1590905998362 3 connected 10923-16383
4e3dbdc8f835dcbc38291c88f08165ee51d53d3d 10.211.55.4:6379@16379 myself,master - 0 1590905997000 1 connected 0-5460
127.0.0.1:6379>
Copier après la connexion
6、测试集群

使用 redis-cli -c 连接到集群上,set

Comment créer un cluster Redis basé sur Docker

Comment créer un cluster Redis basé sur DockerAprès avoir exécuté la commande en cours d'exécution, vérifiez le démarrage du conteneur :

🎜Basé sur Docker Comment créer un cluster Redis🎜🎜Si la situation ci-dessus se produit, Quité (1) il y a 3 secondes, vous pouvez la consulter via journaux Docker</code >: 🎜🎜<img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/465/014/168542197125049.png" class="lazy" src= "https://img.php.cn/upload/article/000/465/014/168542197091625.png" alt="Comment construire un cluster Redis basé sur Docker" />🎜🎜 L'invite ci-dessus est un problème d'autorisation, nous essayons de la modifier. Les autorisations suivantes : 🎜<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>root@CentOS7:/data# redis-cli -c 127.0.0.1:6379&gt; set wxiaowei 123 -&gt; Redirected to slot [7515] located at 10.211.55.4:6380 OK 10.211.55.4:6380&gt; get wxiaowei &quot;123&quot;</pre><div class="contentsignin">Copier après la connexion</div></div>🎜Comme indiqué ci-dessous après un démarrage réussi : 🎜🎜<img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/465/014/168542197125049.png" class="lazy" alt="Basé sur Docker Comment construire un cluster Redis">🎜🎜Construire un cluster🎜🎜Afficher les informations sur le nœud IP de 3 Redis alloués dans Docker : 🎜rrreee🎜<img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/465/014/168542197125049.png" class="lazy" alt="Comment créer un cluster Redis basé sur Docker">🎜🎜Après avoir obtenu les informations IP (les informations IP de chacun peut être différent), puis entrez un certain conteneur pour former un cluster :🎜rrreee🎜<img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/465/014/168542197125049.png" class="lazy" alt=" Comment construire un cluster Redis basé sur Docker">🎜🎜ok, Maintenant que le cluster est configuré, testons-le. 🎜🎜Test du cluster🎜🎜Utilisez la commande <code>redis-cli -c pour vous connecter au nœud du cluster, puis définissez la valeur. Après la valeur définie, il sera automatiquement redirigé vers l'adresse IP 0.2, et. puis passez-le par get, et cela réussira. Prouvez que le cluster fonctionne. 🎜🎜Comment créer un cluster Redis basé sur Docker🎜

4. Problèmes existants🎜🎜Suivez les étapes ci-dessus, bien que le cluster soit établi avec succès, il reste encore quelques problèmes, car l'adresse IP dans le nœud du cluster est allouée en interne par le dock, tel que : 172.17.0.2 etc. Si le projet utilisant redis cluster n'est pas sur le même serveur que le cluster, alors le projet ne peut pas utiliser le cluster car il est inaccessible. 🎜🎜Comment construire un cluster Redis basé sur Docker🎜🎜Une solution Il s'agit du type de connexion réseau qui permet à Docker d'utiliser le mode hôte. Les conteneurs créés par Docker en utilisant le mode hôte. n'a pas Avec son propre espace de noms réseau indépendant, il partage un espace réseau avec la machine physique, puis peut partager tous les ports et IP de la machine physique, afin que le réseau public puisse accéder directement au conteneur Bien que cette méthode présente des risques pour la sécurité, aucun autre mode réalisable n'a été trouvé jusqu'à présent. 🎜🎜 Concernant les problèmes existants, nous avons réadopté le host mode et recréé le conteneur : 🎜🎜1 Arrêtez le conteneur en cours d'exécution 🎜rrreee🎜2 Supprimez le conteneur précédemment créé 🎜rrreee🎜3. La création rebasée de 🎜rrreee🎜 en mode hôte est différente de la commande de création précédente. Premièrement, le type de réseau de --net est spécifié comme host. Dans ce cas, le mappage de port n'est pas requis. , comme -p 6379:6379, car le service de port de conteneur doit être partagé en externe à ce moment-là, il vous suffit donc de spécifier le port exposé en externe -p 6379, -p 6380 etc. 🎜🎜Comment construire un cluster Redis basé sur Docker🎜🎜4. Démarrez le conteneur Et créez un cluster🎜rrreee🎜Comment créer un cluster Redis basé sur Docker🎜🎜 5. Vérifiez les informations du cluster🎜rrreee🎜6. Testez le cluster🎜🎜Utilisez redis-cli -c pour vous connecter au cluster, set a valeur, puis récupérez la valeur des autres nœuds. Vérifiez si cela a réussi : 🎜rrreee🎜🎜🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Dead Rails - Comment apprivoiser les loups
4 Il y a quelques semaines By DDD
Niveaux de force pour chaque ennemi et monstre de R.E.P.O.
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
<🎜>: Grow A Garden - Guide de mutation complet
2 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel Java
1660
14
Tutoriel PHP
1261
29
Tutoriel C#
1234
24
Comment sortir du conteneur par Docker Comment sortir du conteneur par Docker Apr 15, 2025 pm 12:15 PM

Quatre façons de quitter Docker Container: Utilisez Ctrl D dans le terminal de conteneur Entrez la commande d'exit dans le terminal de conteneur Utilisez Docker Stop & lt; contener_name & gt; Commande utilise docker kill & lt; contener_name & gt; commande dans le terminal hôte (sortie de force)

Comment copier des fichiers dans Docker à l'extérieur Comment copier des fichiers dans Docker à l'extérieur Apr 15, 2025 pm 12:12 PM

Méthodes de copie de fichiers en hôtes externes dans Docker: Utilisez la commande docker cp: exécuter docker cp [options] & lt; Container Path & gt; & lt; Host Path & gt;. Utilisation de volumes de données: créez un répertoire sur l'hôte et utilisez le paramètre -v pour monter le répertoire dans le conteneur lors de la création du conteneur pour obtenir la synchronisation de fichiers bidirectionnels.

Comment démarrer un conteneur par Docker Comment démarrer un conteneur par Docker Apr 15, 2025 pm 12:27 PM

Étapes de démarrage du conteneur Docker: Tirez l'image du conteneur: Exécutez "Docker Pull [Mirror Name]". Créer un conteneur: utilisez "Docker Create [Options] [Mirror Name] [Commandes et paramètres]". Démarrez le conteneur: exécutez "docker start [nom de conteneur ou id]". Vérifiez l'état du conteneur: vérifiez que le conteneur s'exécute avec "Docker PS".

Comment redémarrer Docker Comment redémarrer Docker Apr 15, 2025 pm 12:06 PM

Comment redémarrer le conteneur Docker: Obtenez l'ID de conteneur (Docker PS); Arrêtez le conteneur (docker stop & lt; contener_id & gt;); Démarrer le conteneur (docker start & lt; contener_id & gt;); Vérifiez que le redémarrage réussit (Docker PS). Autres méthodes: Docker Compose (redémarrage Docker-Compose) ou API Docker (voir Docker Documentation).

Comment vérifier le nom du conteneur Docker Comment vérifier le nom du conteneur Docker Apr 15, 2025 pm 12:21 PM

Vous pouvez interroger le nom du conteneur Docker en suivant les étapes: répertorier tous les conteneurs (Docker PS). Filtrez la liste des conteneurs (à l'aide de la commande grep). Obtient le nom du conteneur (situé dans la colonne "Noms").

Comment démarrer MySQL par Docker Comment démarrer MySQL par Docker Apr 15, 2025 pm 12:09 PM

Le processus de démarrage de MySQL dans Docker se compose des étapes suivantes: Tirez l'image MySQL pour créer et démarrer le conteneur, définir le mot de passe de l'utilisateur racine et mapper la connexion de vérification du port Créez la base de données et l'utilisateur accorde toutes les autorisations sur la base de données

Comment mettre à jour l'image de Docker Comment mettre à jour l'image de Docker Apr 15, 2025 pm 12:03 PM

Les étapes pour mettre à jour une image Docker sont les suivantes: Tirez la dernière étiquette d'image Nouvelle image Supprimer l'ancienne image pour une balise spécifique (facultative) Redémarrez le conteneur (si nécessaire)

Comment créer des conteneurs pour Docker Comment créer des conteneurs pour Docker Apr 15, 2025 pm 12:18 PM

Créer un conteneur dans Docker: 1. Tirez l'image: docker pull [Nom du miroir] 2. Créer un conteneur: docker run [Options] [Nom du miroir] [Commande] 3. Démarrez le conteneur: docker start [Nom du conteneur]

See all articles