docker实现redis集群

1、下载redis作为制作镜像前提准备

wget http://download.redis.io/releases/redis-3.2.4.tar.gz

2、Dockerfile制作(与redis-3.2.4.tar.gz同目录--redis-cluster

FROM centos:6.7

MAINTAINER gxg gaoxinguo@qq.com 

ENV REFRESHED_AT 2017-12-10

 

ENV REDIS_HOME /opt/redis/redis_default 

 

ADD redis-3.2.4.tar.gz /opt/redis/ 

RUN ln -s /opt/redis/redis-3.2.4 $REDIS_HOME 

 

RUN yum -y install gcc 

 

WORKDIR $REDIS_HOME 

RUN make && make install 

 

EXPOSE 6379 

 

ENTRYPOINT [ "/usr/local/bin/redis-server", "/etc/redis/redis.conf" ]

     ※ 运行 docker build --tag rediscluster:v1 .  生成基础镜像!

3、新建集群redis服务器目录

4、每个目录中新建配置文件和启动文件

5、编辑基础的配置redis.conf

port 6379 

bind 172.17.0.2

daemonize no 

pidfile "/var/run/redis.pid" 

cluster-enabled yes 

cluster-config-file nodes.conf 

cluster-node-timeout 15000 

appendonly yes

6、编辑每个目录下的启动文件

#!/bin/bash

docker run -d -p 7000:6379 --restart always --net=comnet --ip 172.17.0.2  --name redis7000 -v /data/redis/7000:/etc/redis/:ro rediscluster:v1

★ 这里docker运行时,使用组网模式并使用固定IP,防止容器重启后IP更改,造成集群失败!

docker network create --subnet=172.17.0.0/16 comnet    ## 创建网桥

7、依次启动6个目录执行对应的脚本

./start.700n.sh

8、进入7000服务器执行集群脚本(容器内执行)

docker exec -it redis7000 /bin/bash 

yum install -y ruby rubygems

wget https://rubygems.global.ssl.fastly.net/gems/redis-3.2.1.gem

gem install -l ./redis-3.2.1.gem

 

src/redis-trib.rb create --replicas 1 172.17.0.2:6379  172.17.0.3:6379 172.17.0.4:6379 172.17.0.5:6379 172.17.0.6:6379 172.17.0.7:6379 

9、如需增加节点,可以增加容器并启动后,执行如下命令

cluster meet 172.17.0.10 6379

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值