docker-compose 安裝redis sentinel,共享主機網絡模式


采坑記錄:

docker sentinel模式安裝完后因為是使用bridge模式,所以只有docker中運行的程序才能訪問。剛開始嘗試使用端口映射,返現sentinel返回的地址依然是docker的內網地址。

docker-compose.yml

version: '3.2'
services:
  master:
    container_name: redis-master-1
    image: redis:3
    command: redis-server --port 16379
    ports:
     - "16379" 
    network_mode: "host" 
  slave:
    image: redis:3
    container_name: redis-slave-1
    ports:
     - "16380"
    network_mode: "host"
    command: redis-server --port 16380 --slaveof redis-master 16379
  sentinel:
    container_name: redis-sentinel-1
    build: sentinel
    ports:
     - "26379"
    environment:
      - SENTINEL_DOWN_AFTER=5000
      - SENTINEL_FAILOVER=5000    
    network_mode: "host"  


2、sentinel.conf文件:

# Example sentinel.conf can be downloaded from http://download.redis.io/redis-stable/sentinel.conf

port 26379

dir /tmp

sentinel monitor mymaster redis-master 16379 $SENTINEL_QUORUM

sentinel down-after-milliseconds mymaster $SENTINEL_DOWN_AFTER

sentinel parallel-syncs mymaster 1

sentinel failover-timeout mymaster $SENTINEL_FAILOVER

3、由於compose和sentinel都使用域名連接master:redis-master,則需要在/etc/hosts中配置該域名解析

10.8.0.1 redis-master

  注意此處一定要解析成程序能訪問到的IP地址。

 

4、docker相關的一些命令

查看運行中的容器:docker container ls
啟動tracker:docker container start tracker
啟動storage:docker container start storage
停止tracker:docker container stop tracker
停止storage:docker container stop storage
docker exec -it tracker /bin/bash
docker logs xxx 查看日志  xxxx為容器Id
docker ps -a 查看所有
netstat -anp |grep 22122

docker exec -it redis-sentinel-1 redis-cli -h 10.8.0.1 -p 26379 SENTINEL get-master-addr-by-name  mymaster  獲取sentinel返回的redis節點地址
docker exec -it redis-sentinel-1 redis-cli -h 10.8.0.1 -p 26379 SENTINEL slaves mymaster  獲取sentinel返回的redis節點地址

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM