Docker Redis 集群

1.pull redis镜像

docker pull redis

2.配置管理文件

由于服务器数量有限,使用两台服务器,搭配3主3从的方案,分别在两个服务器上采用docker创建3个redis实例。

服务器1上分别创建目录/usr/local/docker_cluster/redis/8091,/usr/local/docker_cluster/redis/8092,/usr/local/docker_cluster/redis/8093

然后在这个目录下创建conf,data, logs文件夹,用于docker容器挂载目录。

服务器2上分别创建目录/usr/local/docker_cluster/redis/8094,/usr/local/docker_cluster/redis/8095,/usr/local/docker_cluster/redis/8096

809*为对于redis容器映射到宿主机的端口, 然后分别在这些端口目录下创建conf,data, logs文件夹,用于docker容器挂载目录。

修改redis配置文件:

port 8091
bind 127.0.0.1 xx.xx.xx.xx #对应自己网卡地址
daemonize no #采用docker运行redis,所以这里可以不用设置后台启动
protected-mode no #redis默认是启动保护模式,启用后只能通过回环地址访问,公网禁止访问,启用条件:1.没有bind IP 2. 没有设置访问密码, 所以这里关闭
cluster-enabled yes #开启redis集群支持
cluster-announce-ip xxx.xxx.xxx.xxx #集群中通信ip地址
cluster-announce-port 8091 #集群端口
cluster-announce-bus-port 18091 #集群总线端口
logfile "/usr/redis/log/redis.log" #配置日志文件

同时修改其他端口相应配置文件,并将相应redis配置文件放入conf中。

3.docker使用命令安装redis

创建日志文件,用于映射:

cd /usr/local/docker_cluster/redis/8091/logs
touch redis.log

对宿主机上的挂载目录进行授权:

chmod -R 777 /usr/local/docker_cluster/redis

运行容器命令:

 docker run -d --name redis1 --net host --privileged=true -v /usr/local/docker_cluster/redis/8091/conf/redis.conf:/etc/redis/redis.conf -v /usr/local/docker_cluster/redis/8091/data:/data -v  /usr/local/docker_cluster/redis/8091/logs/redis.log:/usr/redis/log/redis.log redis redis-server /etc/redis/redis.conf

docker run -d --name redis2 --net host --privileged=true -v /usr/local/docker_cluster/redis/8092/conf/redis.conf:/etc/redis/redis.conf -v /usr/local/docker_cluster/redis/8092/data:/data -v /usr/local/docker_cluster/redis/8092/logs/redis.log:/usr/redis/log/redis.log redis redis-server /etc/redis/redis.conf

docker run -d --name redis3 --net host --privileged=true -v /usr/local/docker_cluster/redis/8093/conf/redis.conf:/etc/redis/redis.conf -v /usr/local/docker_cluster/redis/8093/data:/data -v /usr/local/docker_cluster/redis/8093/logs/redis.log:/usr/redis/log/redis.log redis redis-server /etc/redis/redis.conf

docker run -d --name redis4 --net host --privileged=true -v /usr/local/docker_cluster/redis/8094/conf/redis.conf:/etc/redis/redis.conf -v /usr/local/docker_cluster/redis/8094/data:/data -v /usr/local/docker_cluster/redis/8094/logs/redis.log:/usr/redis/log/redis.log redis redis-server /etc/redis/redis.conf

docker run -d --name redis5 --net host --privileged=true -v /usr/local/docker_cluster/redis/8095/conf/redis.conf:/etc/redis/redis.conf -v /usr/local/docker_cluster/redis/8095/data:/data -v /usr/local/docker_cluster/redis/8095/logs/redis.log:/usr/redis/log/redis.log redis redis-server /etc/redis/redis.conf

docker run -d --name redis6 --net host --privileged=true -v /usr/local/docker_cluster/redis/8096/conf/redis.conf:/etc/redis/redis.conf -v /usr/local/docker_cluster/redis/8096/data:/data -v /usr/local/docker_cluster/redis/8096/logs/redis.log:/usr/redis/log/redis.log redis redis-server /etc/redis/redis.conf

--privileged=true: container内的root拥有真正的root权限。

否则,container内的root只是外部的一个普通用户权限。

privileged启动的容器,可以看到很多host上的设备,并且可以执行mount。

甚至允许你在docker容器中启动docker容器。

4.集群创建

进入redis1容器:

docker exec -it redis1 bash
redis-cli -a "xxx" --cluster create 192.168.229.252:8091 192.168.229.252:8092 192.168.229.252:8093 \
192.168.229.252:8096 192.168.229.112:8094 192.168.229.112:8095 --cluster-replicas 1
redis-cli -p 8091 -a "xxx" cluster nodes #集群节点查看命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值