docker-compose.yml 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. services:
  2. # 主节点
  3. redis-master:
  4. image: registry.cn-chengdu.aliyuncs.com/reghao/redis:6.0.16-bullseye
  5. container_name: redis-master
  6. restart: always
  7. command: redis-server /etc/redis/redis.conf
  8. volumes:
  9. - /etc/localtime:/etc/localtime:ro
  10. - ./redis/redis.conf:/etc/redis/redis.conf
  11. healthcheck:
  12. test: [ "CMD", "redis-cli", "ping" ]
  13. interval: 5s # 每 5 秒检查一次
  14. timeout: 3s # 超时时间
  15. retries: 5 # 重试次数
  16. start_period: 10s # 容器启动后 10 秒内不计入失败
  17. # 从节点 1
  18. redis-slave-1:
  19. image: registry.cn-chengdu.aliyuncs.com/reghao/redis:6.0.16-bullseye
  20. container_name: redis-slave-1
  21. restart: always
  22. volumes:
  23. - /etc/localtime:/etc/localtime:ro
  24. - ./redis/redis.conf:/etc/redis/redis.conf
  25. command: redis-server /etc/redis/redis.conf --replicaof redis-master 6379
  26. healthcheck:
  27. test: [ "CMD", "redis-cli", "ping" ]
  28. interval: 5s # 每 5 秒检查一次
  29. timeout: 3s # 超时时间
  30. retries: 5 # 重试次数
  31. start_period: 10s # 容器启动后 10 秒内不计入失败
  32. depends_on:
  33. - redis-master
  34. # 从节点 2
  35. redis-slave-2:
  36. image: registry.cn-chengdu.aliyuncs.com/reghao/redis:6.0.16-bullseye
  37. container_name: redis-slave-2
  38. restart: always
  39. volumes:
  40. - /etc/localtime:/etc/localtime:ro
  41. - ./redis/redis.conf:/etc/redis/redis.conf
  42. command: redis-server /etc/redis/redis.conf --replicaof redis-master 6379
  43. healthcheck:
  44. test: [ "CMD", "redis-cli", "ping" ]
  45. interval: 5s # 每 5 秒检查一次
  46. timeout: 3s # 超时时间
  47. retries: 5 # 重试次数
  48. start_period: 10s # 容器启动后 10 秒内不计入失败
  49. depends_on:
  50. - redis-master
  51. # 哨兵 1
  52. sentinel-1:
  53. image: registry.cn-chengdu.aliyuncs.com/reghao/redis:6.0.16-bullseye
  54. container_name: sentinel-1
  55. restart: always
  56. ports:
  57. - "26379:26379"
  58. command: redis-sentinel /etc/redis/sentinel.conf
  59. volumes:
  60. - /etc/localtime:/etc/localtime:ro
  61. - ./sentinel/sentinel1.conf:/etc/redis/sentinel.conf
  62. healthcheck:
  63. # 哨兵端口不同,需要指定端口进行 ping
  64. test: [ "CMD", "redis-cli", "-p", "26379", "ping" ]
  65. interval: 5s
  66. timeout: 3s
  67. retries: 5
  68. # 哨兵 2
  69. sentinel-2:
  70. image: registry.cn-chengdu.aliyuncs.com/reghao/redis:6.0.16-bullseye
  71. container_name: sentinel-2
  72. restart: always
  73. ports:
  74. - "26380:26379"
  75. command: redis-sentinel /etc/redis/sentinel.conf
  76. volumes:
  77. - /etc/localtime:/etc/localtime:ro
  78. - ./sentinel/sentinel2.conf:/etc/redis/sentinel.conf
  79. healthcheck:
  80. # 哨兵端口不同,需要指定端口进行 ping
  81. test: [ "CMD", "redis-cli", "-p", "26379", "ping" ]
  82. interval: 5s
  83. timeout: 3s
  84. retries: 5
  85. # 哨兵 3
  86. sentinel-3:
  87. image: registry.cn-chengdu.aliyuncs.com/reghao/redis:6.0.16-bullseye
  88. container_name: sentinel-3
  89. restart: always
  90. ports:
  91. - "26381:26379"
  92. command: redis-sentinel /etc/redis/sentinel.conf
  93. volumes:
  94. - /etc/localtime:/etc/localtime:ro
  95. - ./sentinel/sentinel3.conf:/etc/redis/sentinel.conf
  96. healthcheck:
  97. # 哨兵端口不同,需要指定端口进行 ping
  98. test: [ "CMD", "redis-cli", "-p", "26379", "ping" ]
  99. interval: 5s
  100. timeout: 3s
  101. retries: 5