services: # 主节点 redis-master: image: registry.cn-chengdu.aliyuncs.com/reghao/redis:6.0.16-bullseye container_name: redis-master restart: always command: redis-server /etc/redis/redis.conf volumes: - /etc/localtime:/etc/localtime:ro - ./redis/redis.conf:/etc/redis/redis.conf healthcheck: test: [ "CMD", "redis-cli", "ping" ] interval: 5s # 每 5 秒检查一次 timeout: 3s # 超时时间 retries: 5 # 重试次数 start_period: 10s # 容器启动后 10 秒内不计入失败 # 从节点 1 redis-slave-1: image: registry.cn-chengdu.aliyuncs.com/reghao/redis:6.0.16-bullseye container_name: redis-slave-1 restart: always volumes: - /etc/localtime:/etc/localtime:ro - ./redis/redis.conf:/etc/redis/redis.conf command: redis-server /etc/redis/redis.conf --replicaof redis-master 6379 healthcheck: test: [ "CMD", "redis-cli", "ping" ] interval: 5s # 每 5 秒检查一次 timeout: 3s # 超时时间 retries: 5 # 重试次数 start_period: 10s # 容器启动后 10 秒内不计入失败 depends_on: - redis-master # 从节点 2 redis-slave-2: image: registry.cn-chengdu.aliyuncs.com/reghao/redis:6.0.16-bullseye container_name: redis-slave-2 restart: always volumes: - /etc/localtime:/etc/localtime:ro - ./redis/redis.conf:/etc/redis/redis.conf command: redis-server /etc/redis/redis.conf --replicaof redis-master 6379 healthcheck: test: [ "CMD", "redis-cli", "ping" ] interval: 5s # 每 5 秒检查一次 timeout: 3s # 超时时间 retries: 5 # 重试次数 start_period: 10s # 容器启动后 10 秒内不计入失败 depends_on: - redis-master # 哨兵 1 sentinel-1: image: registry.cn-chengdu.aliyuncs.com/reghao/redis:6.0.16-bullseye container_name: sentinel-1 restart: always ports: - "26379:26379" command: redis-sentinel /etc/redis/sentinel.conf volumes: - /etc/localtime:/etc/localtime:ro - ./sentinel/sentinel1.conf:/etc/redis/sentinel.conf healthcheck: # 哨兵端口不同,需要指定端口进行 ping test: [ "CMD", "redis-cli", "-p", "26379", "ping" ] interval: 5s timeout: 3s retries: 5 # 哨兵 2 sentinel-2: image: registry.cn-chengdu.aliyuncs.com/reghao/redis:6.0.16-bullseye container_name: sentinel-2 restart: always ports: - "26380:26379" command: redis-sentinel /etc/redis/sentinel.conf volumes: - /etc/localtime:/etc/localtime:ro - ./sentinel/sentinel2.conf:/etc/redis/sentinel.conf healthcheck: # 哨兵端口不同,需要指定端口进行 ping test: [ "CMD", "redis-cli", "-p", "26379", "ping" ] interval: 5s timeout: 3s retries: 5 # 哨兵 3 sentinel-3: image: registry.cn-chengdu.aliyuncs.com/reghao/redis:6.0.16-bullseye container_name: sentinel-3 restart: always ports: - "26381:26379" command: redis-sentinel /etc/redis/sentinel.conf volumes: - /etc/localtime:/etc/localtime:ro - ./sentinel/sentinel3.conf:/etc/redis/sentinel.conf healthcheck: # 哨兵端口不同,需要指定端口进行 ping test: [ "CMD", "redis-cli", "-p", "26379", "ping" ] interval: 5s timeout: 3s retries: 5