#创建运行容器
集群需要对外提供服务的话设置 网络模式为 host 添加参数:--net host
docker run -i -t -p 7000:7000 -p 7001:7001 -p 7002:7002 -p 7003:7003 -p 7004:7004 -p 7005:7005 --net host --name redis-cluster grokzen/redis-cluster
#登录其中一个节点
redis-cli -c -p 7000
注意将端口号7000-7005 在防火墙中设置放行
firewall-cmd --zone=public --add-port=7000/tcp --permanent
firewall-cmd --reload
systemctl restart firewalld
docker run -i -t -p 7000:7000 -p 7001:7001 -p 7002:7002 -p 7003:7003 -p 7004:7004 -p 7005:7005 --net host --name redis-cluster grokzen/redis-cluster
日常运维中肯定有很多需要
Redis
的,一般测试环境安装
redis
不管是源码还是rpm安装都比较耗时,此时
使用
docker
安装
redis
就是一个便捷高效的方式并且
redis
有官方自带的
redis
镜像。本文基于在CentOS7已经安装好了
docker
应用前提下。
一、
Redis
镜像选型
直接检索MySQL镜像
#
docker
search
redis
INDEX NAME DESCRIPTION .
为了体验
Redis
集群
,并且为了便于部署所以直接
使用
docker
部署了一个简单
集群
:
docker
run -e "IP=0.0.0.0" -p 7000-7005:7000-7005 -d --name
redis
-
cluster
grok
zen
/
redis
-
cluster
:latest
redis
-cli -c -p 7000
通过set 命令测试
集群
:
127.0.0.1:7000> set a 1
-> Redirected to slot [15495] locate
#创建运行容器
docker
run -d -t -p 7000:7000 -p 7001:7001 -p 7002:7002 -p 7003:7003 -p 7004:7004 -p 7005:7005
grok
zen
/
redis
-
cluster
#安装
redis
相关组件
yum install
redis
#登录其中一个节点
redis
-cli -c -p 7000
#测试增删改查正常
3.2.11, 3.2, 3 (3.2/
Docker
file)
3.2.11-32bit, 3.2-32bit, 3-32bit (3.2/32bit/
Docker
file)
3.2.11-alpine, 3.2-alpine, 3-alpine (3.2/alpine/
Docker
file)
4.0.9, 4.0, 4, latest (4.0/
Docker
file)
4.0.9-32bit, 4.0-32bit, 4-32bit, 32bit (4.0/32bit/
Docker
file)
cluster
-enabled yes 开启
集群
cluster
-config-file nodes-6378.conf 该节点的配置文件(
集群
自动生成的文件)
cluster
-node-timeout 15000 节点...
要在
Docker
中集成
Redis
Cluster
集群
,可以按照以下步骤操作:
1. 创建一个
Docker
Compose文件,定义
Redis
Cluster
集群
的服务和配置。例如:
version: '3'
services:
redis
-1:
image:
redis
:latest
command:
redis
-server /
redis
-conf/
redis
-1.conf
ports:
- 6381:6381
volumes:
- ./conf/
redis
-1.conf:/
redis
-conf/
redis
-1.conf
- ./data/
redis
-1:/data
redis
-2:
image:
redis
:latest
command:
redis
-server /
redis
-conf/
redis
-2.conf
ports:
- 6382:6382
volumes:
- ./conf/
redis
-2.conf:/
redis
-conf/
redis
-2.conf
- ./data/
redis
-2:/data
redis
-3:
image:
redis
:latest
command:
redis
-server /
redis
-conf/
redis
-3.conf
ports:
- 6383:6383
volumes:
- ./conf/
redis
-3.conf:/
redis
-conf/
redis
-3.conf
- ./data/
redis
-3:/data
redis
-4:
image:
redis
:latest
command:
redis
-server /
redis
-conf/
redis
-4.conf
ports:
- 6384:6384
volumes:
- ./conf/
redis
-4.conf:/
redis
-conf/
redis
-4.conf
- ./data/
redis
-4:/data
redis
-5:
image:
redis
:latest
command:
redis
-server /
redis
-conf/
redis
-5.conf
ports:
- 6385:6385
volumes:
- ./conf/
redis
-5.conf:/
redis
-conf/
redis
-5.conf
- ./data/
redis
-5:/data
redis
-6:
image:
redis
:latest
command:
redis
-server /
redis
-conf/
redis
-6.conf
ports:
- 6386:6386
volumes:
- ./conf/
redis
-6.conf:/
redis
-conf/
redis
-6.conf
- ./data/
redis
-6:/data
networks:
redis
-
cluster
:
driver: bridge
2. 在同一目录下创建一个conf文件夹,用于存储每个
Redis
节点的配置文件。例如,创建一个
redis
-1.conf文件:
port 6381
cluster
-enabled yes
cluster
-config-file nodes.conf
cluster
-node-timeout 5000
appendonly yes
3. 启动
Redis
Cluster
集群
服务:
docker
-compose up -d
4. 将节点加入
Redis
Cluster
集群
。可以
使用
redis
-cli命令行工具连接到每个节点,并
使用
CLUSTER
MEET命令将节点加入
集群
。例如:
redis
-cli -h 127.0.0.1 -p 6381
>
CLUSTER
MEET 127.0.0.1 6382
>
CLUSTER
MEET 127.0.0.1 6383
>
CLUSTER
MEET 127.0.0.1 6384
>
CLUSTER
MEET 127.0.0.1 6385
>
CLUSTER
MEET 127.0.0.1 6386
5. 创建一个
Redis
Cluster
集群
。可以
使用
redis
-cli命令行工具连接到任何一个节点,并
使用
CLUSTER
CREATE命令来创建
集群
。例如:
redis
-cli --
cluster
create 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385 127.0.0.1:6386 --
cluster
-replicas 1
6. 现在,您已经成功地在
Docker
中集成了
Redis
Cluster
集群
。可以
使用
redis
-cli命令行工具连接到任何一个节点,并开始
使用
集群
。