使用Docker Compose部署Sentinel模式的Redis集群。
- 拉取源码
- 修改
docker-compose.yml
中的MASTER_IP
和MASTER_PORT
参数,以及slave_1
和slave_2
中的Master节点的IP,端口可根据情况修改 - 修改
sentinel/sentinel.conf
中mymaster的IP和端口,和步骤2中修改的保持一致 - 执行
docker-compose build --no-cache
- 执行
docker-compose up --scale sentinel=3 -d
启动之后,执行docker-compose ps
,输出:
Name Command State Ports
-----------------------------------------------------------------------------------------------------------
redissentineldocker_master_1 docker-entrypoint.sh redis ... Up
redissentineldocker_sentinel_1 sentinel-entrypoint.sh Up 0.0.0.0:1072->26379/tcp, 6379/tcp
redissentineldocker_sentinel_2 sentinel-entrypoint.sh Up 0.0.0.0:1073->26379/tcp, 6379/tcp
redissentineldocker_sentinel_3 sentinel-entrypoint.sh Up 0.0.0.0:1071->26379/tcp, 6379/tcp
redissentineldocker_slave_1_1 docker-entrypoint.sh redis ... Up
redissentineldocker_slave_2_1 docker-entrypoint.sh redis ... Up
可以看到启动了3个Sentinel节点,1个Master节点,2个Slave节点,Sentinel的端口通过bridge网络模式映射到了宿主机的随机端口上,而Master和Slave节点则是使用了host网络模式,解决了其他应用连接不上的问题。