由于昨天的博客已经配置了redis容器,所以配置容器的过程就不再写在本篇里面。各位可以看本人昨天的博客来配置docker容器中的redis容器。
1.先查看启动的容器:docker ps -a
然后进入容器内部:docker exec -it 容器id redis-cli
测试容器:
127.0.0.1:6379> set a test
OK
127.0.0.1:6379> get a
"test"
127.0.0.1:6379> quit
测试成功,退出。
2.查看容器的内网ip地址:[root@localhost ~]# docker inspect redis-slave1
会出现很长的一串东西,我们找到NetworkSettings中的IPAddress,这个就是容器的ip地址。
这边我得到的容器地址是:
redis-master:172.17.0.2:6379
redis-slave1:172.17.0.3:6379
redis-slave2:172.17.0.4:6379
这时候我们再次进入容器内部,查看容器的主从状态,不出意外的话应该3个容器都是master状态,所以我们要进入内部、更改主从状态。
先查看状态:
docker exec -it 6091eaf2475c /bin/bash
redis-cli
3.然后我们更改名字叫master的容器为主机,所以要把名为slave1、slave2的容器的主机改为127.0.1 6379:
docker exec -it redis-slave1 /bin/bash
redis-cli
SLAVEOF 172.17.0.2 6379
quit
exit
4.同样的操作来2次,即可更改这个两个容器的主机,然后我们查看名为master的主机是否有2个从机了。先进入容器内部:
docker exec -it redis-slave1 /bin/bash
redis-cli
info replication
如果显示有一行代码如下:connected_slaves:2
则表示我们的配置成功,就开始配置哨兵了。
5.开始配置哨兵
还是要进入3台容器的内部配置,在容器的根目录里创建sentinel.conf文件
文件内容为: sentinel monitor redis-master 172.17.0.2 6379 1
docker exec -it 容器ID /bin/bash
cd / && touch sentinel.conf
vim /sentinel.conf
如果出现:shell bash: vi: command not found
则需要这两个命令都输入,而且要按顺序输入:1、apt-get update 2、apt-get install vim
最后依次启动哨兵,为了方便,我们使用多个窗口。
6.测试
为了查看哨兵是否成功配置,我们把主机关闭:
docker stop 容器ID
然后去其他2个窗口查看剩下的2个容器有没有推选出一个成为主机:
如果显示了这样的一行,那么我们的哨兵就配置成功了。
具体的理论可以参考这位大神的博客:https://www.cnblogs.com/leeSmall/p/8398401.html