1. 程式人生 > >docker實現redis叢集

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 [email protected] 

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" ]

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更改,造成叢集失敗!

7、依次啟動6個目錄執行對應的指令碼

./start.700n.sh

8、進入7000伺服器執行叢集指令碼(容器內執行)

docker exec -it redis-7000 /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