1、自定义network :
docker network create redis --subnet 172.38.0.0/16
2、配置文件
touch redis-config.sh
chmod +x redis-config.sh
for port in $(seq 1 6); \
do \
mkdir -p /mydata/redis/node-${port}/conf
touch /mydata/redis/node-${port}/conf/redis.conf
cat << EOF >/mydata/redis/node-${port}/conf/redis.conf
port 6379
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 172.38.0.1${port}
cluster-announce-port 6379
cluster-announce-bus-port 16379
appendonly yes
EOF
done
3、用脚本启动6个redis
touch redis-contain.sh
chmod +x redis-contain.sh
for port in $(seq 1 6); \
do \
docker run -p 637${port}:6379 -p 1637${port}:13679 --name redis-${port} \
-v /mydata/redis/node-${port}/data:/data \
-v /mydata/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.1${port} redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf;
done
4、查看容器
[root@k8s-node1 redis-cluster]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f33111493f46 redis:5.0.9-alpine3.11 "docker-entrypoint.s…" 28 minutes ago Up 27 minutes 0.0.0.0:6376->6379/tcp, 0.0.0.0:16376->13679/tcp redis-6
7c590fb24903 redis:5.0.9-alpine3.11 "docker-entrypoint.s…" 28 minutes ago Up 27 minutes 0.0.0.0:6375->6379/tcp, 0.0.0.0:16375->13679/tcp redis-5
4872c9da9239 redis:5.0.9-alpine3.11 "docker-entrypoint.s…" 28 minutes ago Up 28 minutes 0.0.0.0:6374->6379/tcp, 0.0.0.0:16374->13679/tcp redis-4
ece5685a84d2 redis:5.0.9-alpine3.11 "docker-entrypoint.s…" 28 minutes ago Up 28 minutes 0.0.0.0:6373->6379/tcp, 0.0.0.0:16373->13679/tcp redis-3
f8dc63ebcdf6 redis:5.0.9-alpine3.11 "docker-entrypoint.s…" 28 minutes ago Up 28 minutes 0.0.0.0:6372->6379/tcp, 0.0.0.0:16372->13679/tcp redis-2
9311e200114a redis:5.0.9-alpine3.11 "docker-entrypoint.s…" 28 minutes ago Up 28 minutes 0.0.0.0:6371->6379/tcp, 0.0.0.0:16371->13679/tcp redis-1
5、进入容器
docker exec -it redis-1 /bin/sh
6、配置集群
redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13:6379 172.38.0.14:6379 172.38.0.15:6379 172.38.0.16:6379 --cluster-replicas 1
如果有密码
redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13:6379 172.38.0.14:6379 172.38.0.15:6379 172.38.0.16:6379 --cluster-replicas 1 -a password