Docker容器中的redis 的主从配置

1、拉取redis镜像

docker pull daocloud.io/library/redis

2、启动3个redis容器服务,分别是6379、6380、6381端口

docker run --name redis-6379 -p 6379:6379 -d daocloud.io/library/redis
docker run --name redis-6380 -p 6380:6379 -d daocloud.io/library/redis
docker run --name redis-6381 -p 6381:6379 -d daocloud.io/library/redis

3、查看3个redis容器服务启动是否成成功

[root@VM_0_17_centos ~]# docker ps
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS              PORTS                    NAMES
111111        daocloud.io/library/redis   "docker-entrypoint.s…"   32 minutes ago      Up 32 minutes       0.0.0.0:6381->6379/tcp   redis-6381
222222        daocloud.io/library/redis   "docker-entrypoint.s…"   32 minutes ago      Up 32 minutes       0.0.0.0:6380->6379/tcp   redis-6380
333333        redis                       "docker-entrypoint.s…"   25 hours ago        Up 25 hours         0.0.0.0:6379->6379/tcp   redis

4、测试容器成功之后进入容器内部(cid看是是那个端口的)

[root@VM_0_17_centos ~]# docker exec -it 333333 redis-cli
127.0.0.1:6379> set b tcy
OK
127.0.0.1:6379> get b
"tcy"
127.0.0.1:6379> quit

5、开始redis集群配置
1)看容器内网的ip地址

docker inspect 111111        

2)3个redis的内网ip地址为:

redis-6379:172.17.0.1:6379
redis-6380:172.17.0.2:6379
redis-6381:172.17.0.3:6379

3)进入docker容器内部,查看当前redis角色(主还是从)

[root@VM_0_17_centos ~]docker exec -it 3333333 /bin/bash
root@ab54741166e1:/data# redis-cli
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:0
master_replid:d43d1ae8cde6cb084220e18b926aba79e0bb2504
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
127.0.0.1:6379> quit
root@ab54741166e1:/data# exit 
exit

4)使用redis-cli命令修改redis-6380、redis-6381的主机为172.17.0.1:6379

[root@VM_0_17_centos ~]# docker exec -it 1111111 /bin/bash    //redis-6380
root@a9fa77adc598:/data# redis-cli
127.0.0.1:6379> SLAVEOF 172.17.0.1 6379
OK
127.0.0.1:6379> quit
root@a9fa77adc598:/data# exit
exit
[root@tcy1 tcy]# docker exec -it 2222222  /bin/bash  //redis-6381
root@6ee2f2f007e6:/data# redis-cli
127.0.0.1:6379> SLAVEOF 172.17.0.1 6379
OK
127.0.0.1:6379> quit

5)查看redis-6379是否已经拥有2个从机

[root@VM_0_17_centos ~]# docker exec -it 3333333 /bin/bash
root@ab54741166e1:/data# redis-cli
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=172.17.0.3,port=6379,state=online,offset=378,lag=1
slave1:ip=172.17.0.2,port=6379,state=online,offset=378,lag=0
master_replid:ce193b15cfd57f7dc3ccfbf2a4aef6156b131e6d
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:378
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:378
127.0.0.1:6379> quit
root@ab54741166e1:/data# exit
exit

6)配置Sentinel哨兵
文件内容为:sentinel monitor mymaster 172.17.0.1 6379 1(esc+shift+: wq保存 !q 不保存)
可能出现bash: vim: command not found
apt-get install vim、 apt-get update (其实一个都可以,看是否是vim的命令识别不了)

   [root@VM_0_17_centos ~]# docker exec -it a9fa77adc598 /bin/bash
    root@a9fa77adc598:/data# cd / && touch sentinel.conf  
    root@a9fa77adc598:/# vim /sentinel.conf

7)启动Redis哨兵(如果退出不了ctrl+z,强制退出)

   [root@VM_0_17_centos ~]#  redis-sentinel /sentinel.conf
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值