1、拉取Redis镜像
docker pull redis:latest
2、创建配置文件
比如在服务器的用户目录下/home/w/
(俺的服务器用户目录)
mkdir redis
cd redis
mkdir bin
mkdir conf
cd conf
创建配置文件vim redis-node-1.conf
,依次6个文件redis-node-1.conf redis-node-2.conf redis-node-3.conf redis-node-4.conf redis-node-5.conf redis-node-6.conf
port 6379
cluster-enabled yes
cluster-config-file redis-node-1.conf
cluster-node-timeout 5000
appendonly yes
3、创建脚本
创建初始化脚本 vim init_redis.sh
#!/bin/bash# 启动6个Redis节点,启动命令中container使用了挂载于宿主服务器的配置文件,记得替换一下这个路径:/home/w/
docker run -d --name redis-node-1 -p 6379:6379 -v /home/w/redis/conf/redis-node-1.conf:/usr/local/etc/redis/redis.conf redis redis-server /usr/local/etc/redis/redis.conf
docker run -d --name redis-node-2 -p 6380:6380 -v /home/w/redis/conf/redis-node-2.conf:/usr/local/etc/redis/redis.conf redis redis-server /usr/local/etc/redis/redis.conf
docker run -d --name redis-node-3 -p 6381:6381 -v /home/w/redis/conf/redis-node-3.conf:/usr/local/etc/redis/redis.conf redis redis-server /usr/local/etc/redis/redis.conf
docker run -d --name redis-node-4 -p 6382:6382 -v /home/w/redis/conf/redis-node-4.conf:/usr/local/etc/redis/redis.conf redis redis-server /usr/local/etc/redis/redis.conf
docker run -d --name redis-node-5 -p 6383:6383 -v /home/w/redis/conf/redis-node-5.conf:/usr/local/etc/redis/redis.conf redis redis-server /usr/local/etc/redis/redis.conf
docker run -d --name redis-node-6 -p 6384:6384 -v /home/w/redis/conf/redis-node-6.conf:/usr/local/etc/redis/redis.conf redis redis-server /usr/local/etc/redis/redis.conf# 等待节点启动
sleep 5# 创建集群
docker exec -it redis-node-1 redis-cli --cluster create \
"$(docker inspect -f '{{.NetworkSettings.IPAddress}}' redis-node-1):6379" \
"$(docker inspect -f '{{.NetworkSettings.IPAddress}}' redis-node-2):6380" \
"$(docker inspect -f '{{.NetworkSettings.IPAddress}}' redis-node-3):6381" \
"$(docker inspect -f '{{.NetworkSettings.IPAddress}}' redis-node-4):6382" \
"$(docker inspect -f '{{.NetworkSettings.IPAddress}}' redis-node-5):6383" \
"$(docker inspect -f '{{.NetworkSettings.IPAddress}}' redis-node-6):6384" \
--cluster-replicas 1echo "All Redis nodes should be running now. Here is the list of running containers:"
docker ps | grep redis
创建停止脚本 vim stop_redis.sh
#!/bin/bash# 停止redis cluster
for i in {1..6}; do
docker stop redis-node-$i
done
创建删除镜像脚本 vim rm_redis.sh
#!/bin/bashfor i in {1..6}; do
docker rm redis-node-$i
done
创建启动容器脚本 vim start_redis.sh
#!/bin/bashfor i in {1..6}; do
docker start redis-node-$i
done