大致步骤:😜
- docker search redis
- docker pull redis
-
- docker network create myredis
-
- docker network ls
-
3、查看dockerr网络详细信息
- docker network inspect myredis
-
4、补充(删除网卡信息、帮助命令)
- docker network rm myredis #删除网卡命令 多个中间 空格隔开
- docker network --help #显示可带参数等
-
此处用到了一点shlle编程中 的一些命令,让我们操作更加便利。😃
- for port in $(seq 6379 6384);
- do
- mkdir -p /home/redis/node-${port}/conf
- touch /home/redis/node-${port}/conf/redis.conf
- cat << EOF > /home/redis/node-${port}/conf/redis.conf
- port ${port}
- requirepass 1234
- bind 0.0.0.0
- protected-mode no
- daemonize no
- appendonly yes
- cluster-enabled yes
- cluster-config-file nodes.conf
- cluster-node-timeout 5000
- cluster-announce-ip 服务器ip地址
- cluster-announce-port ${port}
- cluster-announce-bus-port 1${port}
- EOF
- done
-
命令解释:😊
redis 在官网上有说明为什么需要映射两个端口:redis官网
执行命令完:
我们通过tree 命令查看目录结构:(如果没有tree命令先安装yum install -y tree)
接下来就是启动容器拉
因为要启动六个容器,一个一个去启动,肯定是麻烦丫。就再次借助shell编程的力量。
- for port in $(seq 6379 6384); \
- do \
- docker run -it -d -p ${port}:${port} -p 1${port}:1${port} \
- --privileged=true -v /home/redis/node-${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \
- --privileged=true -v /home/redis/node-${port}/data:/data \
- --restart always --name redis-${port} --net myredis \
- --sysctl net.core.somaxconn=1024 redis redis-server /usr/local/etc/redis/redis.conf
- done
-
解释:🤑
执行完成:
亦可使用docker ps -a查看运行中容器。
可以看到已全部启动成功。
👨🔧
可随意选择一个节点进入,创建Redis集群。
- docker exec -it redis-6379 /bin/bash
-
- redis-cli -a 之前设置的密码 --cluster create 配置文件中的IP地址:6379 IP地址:6380 IP地址:6381 IP地址:6382 IP地址:6383 IP地址:6384 --cluster-replicas 1
-
显示这样的画面就表示已经成功拉。
进入容器后,通过redis-cli -c -a 1234,进入redis。👼
输入cluster info查看集群信息
也可输入cluster nodes查看所有节点相关信息
👨💻下一步就是进入测试阶段拉。😀
我们在 6381中 set 进去,同时在 6379 中能够取出来,这代表我们已经成功拉😁
进入windows中 你redis下载的目录中,进入cmd。
测试说明 我们已经可以连接拉。
那么我们就开启两个cmd 窗口,用不一样的端口进入。
到此,可以证明我们的集群是已经搭建成功拉。
批量停止容器
- for port in $(seq 6379 6384);
- do
- docker stop redis-${port}
- done
-
批量删除容器
- for port in $(seq 6379 6384);
- do
- docker rm redis-${port}
- done
-
注: 如果是阿里云或者腾讯云上的服务器 ,要记得打开安全组规则, 6379~6384和16379 ~16384都要打开。
如果是虚拟机上,可能牵扯到防火墙,这个得注意一下。