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 |