1. 程式人生 > >docker搭建redis3.2官方叢集

docker搭建redis3.2官方叢集

1.叢集配置:
6個節點,一主一備,三個主節點,三個從節點

2.單節點redis配置
2.1 DockerFile檔案:

FROM redis:3.2
MAINTAINER ylzhang

ENV REDIS_HOME /usr/local

RUN mkdir $REDIS_HOME/conf
WORKDIR $REDIS_HOME/conf

## 建立一個redis.conf檔案,開啟叢集相關配置,預設埠不寫的話為6379
RUN echo "cluster-enabled yes" > redis.conf
RUN echo "cluster-config-file nodes_6379.conf"
>> redis.conf ## 初始化容器時啟動redis例項 CMD ["redis-server","/usr/local/conf/redis.conf"]

2.2 映象建立

docker build -t ylzhang/redis53 . 

2.3 建立redis容器:

docker run -d --name redis53 --net=host ylzhang/redis-cluster

2.3.1 為了容易更改配置檔案,我們也可以將redis的conf目錄volumn出來,在宿主機器下建立conf檔案,例如在宿主機的/usr/local/redis/conf下 新建redis.conf檔案,那麼相應的docker run命令就是:

docker run -d --name redis53 -v /usr/local/redis/conf/:/usr/local/conf --net=host ylzhang/redis-cluster

2.4 檢查redis例項執行:

docker ps

可以看到docker容器的redis例項已經起來了,進入容器:

docker exec -it redis53 /bin/bash

進入容器後:

redis-cli -p 6379

出現命令列提示:127.0.0.1:6379>
大功告成!

3.建立6個redis例項
按照步驟2依次建立6個redis例項,注意:如果在一個宿主機上請更改redis.conf中的埠,不要埠衝突了。

4.叢集create

4.1 下載redis.tar.gz,由於我宿主機下載不下來,所以選擇本地下載放到宿主機上,放在與Dockerfile同級目錄下,Dockerfile檔案:

FROM ruby:2.2.5
MAINTAINER ylzhang

RUN gem install redis
ADD ./redis-3.2.5.tar.gz /usr/local
RUN cd /usr/local && ln -s redis-3.2.5 redis

4.2 建立ruby_redis映象

docker build -t ylzhang/ruby_redis .

4.3 建立ruby_redis容器

docker run -it ylzhang/ruby_redis /bin/bash

4.4 建立叢集
進入ruby_redis集群后

/usr/local/redis/src/redis-trib.rb create --replicas 1 \
10.0.0.52:6379 10.0.0.52:7379 10.0.0.53:6379 \
10.0.0.53:7379 10.0.0.54:6379 10.0.0.54:7379

會看到 “Can I set the above configuration” 輸入yes,叢集建立完成。

5.驗證叢集建立

進入其中一個節點:

docker exec -it redis53 /bin/bash

輸入:

redis-cli -c -p 6379

輸入:

cluster info
cluster nodes

顯示叢集資訊,叢集搭建成功!
插個數據看看:
結果顯示