docker pull redis 拉redis镜像
mkdir -p /home/redis-cluster
vim redis-cluster.tmpl
port ${PORT}
protected-mode no
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 192.168.2.88
cluster-announce-port ${PORT}
cluster-announce-bus-port 1${PORT}
appendonly yes
vim test.sh
for port in `seq 7001 7006`; do \
mkdir -p ./${port}/conf \
&& PORT=${port} envsubst < ./redis-cluster.tmpl > ./${port}/conf/redis.conf \
&& mkdir -p ./${port}/data; \
done
如果出现envsubst: command not found
yum install gettext
chmod +x test.sh && ./test.sh
生成六个redis所用的文件..包括配置和数据存放点
vim test1.sh
for port in `seq 7001 7006`; do \
docker run -d -ti -p ${port}:${port} -p 1${port}:1${port}\
-v /home/redis-cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \
-v /home/redis-cluster/${port}/data:/data \
--restart always --name redis-${port} \
--sysctl net.core.somaxconn=1024 redis redis-server /usr/local/etc/redis/redis.conf; \
done
生成六个容器
iptables -I INPUT -p tcp --dport 7001-7006 -j ACCEPT开放端口
iptables -I INPUT -p tcp --dport 17001-17006 -j ACCEPT 开放集群连接端口
进入单个容器
docker exec -it redis-7001 /bin/sh
redis-cli --cluster create 192.168.2.88:7001 192.168.2.88:7002 192.168.2.88:7003 192.168.2.88:7004 192.168.2.88:7005 192.168.2.88:7006