docker redis4.0 集群(cluster)搭建
阿新 • • 發佈:2018-06-02
add port only bus sub app ech append dock
一、安裝docker、ruby環境
#安裝所需的軟件包 yum install -y yum-utils device-mapper-persistent-data lvm2 #設置穩定的存儲庫 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo #安裝docker ce(docker社區版) yum install docker-ce #啟動docker systemctl start docker #獲取redis鏡像(最新版為4.0.9) docker pull redis #在docker庫獲取ruby鏡像 docker pull ruby
二、部署redis集群
#創建集群目錄 mkdir /opt/redis-cluster cd /opt/redis-cluster #創建模板文件redis-cluster.tmpl,內容如下 port ${PORT} cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 10000 cluster-announce-ip 123.*.*.* cluster-announce-port ${PORT} cluster-announce-bus-port 1${PORT} appendonly yes #生成conf和data目標,並生成配置信息for port in `seq 7000 7005`; do mkdir -p ./${port}/conf && PORT=${port} envsubst < ./redis-cluster.tmpl > ./${port}/conf/redis.conf && mkdir -p ./${port}/data; done #創建6個redis容器 for port in `seq 7000 7005`; do docker run -d -ti -p ${port}:${port} -p 1${port}:1${port} -v /opt/redis-cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf-v /opt/redis-cluster/${port}/data:/data --restart always --name redis-${port} --net bridge -m 100M --memory-swap=100M --sysctl net.core.somaxconn=1024 redis redis-server /usr/local/etc/redis/redis.conf; done #通過啟動ruby來實現集群 echo yes | docker run -i --rm --net bridge ruby sh -c ‘\ gem install redis && wget http://download.redis.io/redis-stable/src/redis-trib.rb \ && ruby redis-trib.rb create --replicas 1 ‘"$(for port in `seq 7000 7005`; do \ echo -n "$(docker inspect --format ‘{{ (index .NetworkSettings.Networks "bridge").IPAddress }}‘ "redis-${port}")":${port} ‘ ‘ ; done)"
docker redis4.0 集群(cluster)搭建