docker-compose启动redis-cluster

Docker方式部署redis-cluster

一、Redis容器初始化

​ 1、容器初始化,使用docker-compose方式,先创建一个docker-compose.yml文件。这里使用host(主机)网络模式,把redis数据挂载到本机目录/opt/docker-compose/redis-cluster/600*`下。

version: '3.5'
services:
 redis1:
  image: publicisworldwide/redis-cluster
  network_mode: host
  restart: always
  volumes:
   - /opt/docker-compose/redis-cluster/6001/data:/data
  environment:
   - REDIS_PORT=6001

 redis2:
  image: publicisworldwide/redis-cluster
  network_mode: host
  restart: always
  volumes:
   - /opt/docker-compose/redis-cluster/6002/data:/data
  environment:
   - REDIS_PORT=6002

 redis3:
  image: publicisworldwide/redis-cluster
  network_mode: host
  restart: always
  volumes:
   - /opt/docker-compose/redis-cluster/6003/data:/data
  environment:
   - REDIS_PORT=6003

 redis4:
  image: publicisworldwide/redis-cluster
  network_mode: host
  restart: always
  volumes:
   - /opt/docker-compose/redis-cluster/6004/data:/data
  environment:
   - REDIS_PORT=6004

 redis5:
  image: publicisworldwide/redis-cluster
  network_mode: host
  restart: always
  volumes:
   - /opt/docker-compose/redis-cluster/6005/data:/data
  environment:
   - REDIS_PORT=6005

 redis6:
  image: publicisworldwide/redis-cluster
  network_mode: host
  restart: always
  volumes:
   - /opt/docker-compose/redis-cluster/6006/data:/data
  environment:
   - REDIS_PORT=6006

​ 若不想使用host模式,也可以把network_mode去掉,但就要加ports映射。redis-cluster的节点端口共分为2种,一种是节点提供服务的端口,如6379;一种是节点间通信的端口,固定格式为:10000+6379。

version: '3.5'
services:
 redis1:
  image: publicisworldwide/redis-cluster
  restart: always
  volumes:
   - /opt/docker-compose/redis-cluster/6001/data:/data
  environment:
   - REDIS_PORT=6001
  ports:
   - '6001:6001'       #服务端口
   - '16001:16001'   #集群端口

 redis2:
  image: publicisworldwide/redis-cluster
  restart: always
  volumes:
   - /opt/docker-compose/redis-cluster/6002/data:/data
  environment:
   - REDIS_PORT=6002
  ports:
   - '6002:6002'       #服务端口
   - '16002:16002'   #集群端口

 redis3:
  image: publicisworldwide/redis-cluster
  restart: always
  volumes:
   - /opt/docker-compose/redis-cluster/6003/data:/data
  environment:
   - REDIS_PORT=6003
  ports:
   - '6003:6003'       #服务端口
   - '16003:16003'   #集群端口

 redis4:
  image: publicisworldwide/redis-cluster
  restart: always
  volumes:
   - /opt/docker-compose/redis-cluster/6004/data:/data
  environment:
   - REDIS_PORT=6004
  ports:
   - '6004:6004'       #服务端口
   - '16004:16004'   #集群端口

 redis5:
  image: publicisworldwide/redis-cluster
  restart: always
  volumes:
   - /opt/docker-compose/redis-cluster/6005/data:/data
  environment:
   - REDIS_PORT=6005
  ports:
   - '6005:6005'       #服务端口
   - '16005:16005'   #集群端口

 redis6:
  image: publicisworldwide/redis-cluster
  restart: always
  volumes:
   - /opt/docker-compose/redis-cluster/6006/data:/data
  environment:
   - REDIS_PORT=6006
  ports:
   - '6006:6006'       #服务端口
   - '16006:16006'   #集群端口

​ 2、创建文件后,直接启动服务

# 后台启动
[root@localhost ~]# docker-compose up -d

​ 3、查看启动的进程

[root@localhost redis-cluster]# docker-compose ps
         Name                       Command               State   Ports
-----------------------------------------------------------------------
redis-cluster_redis1_1   /usr/local/bin/entrypoint. ...   Up           
redis-cluster_redis2_1   /usr/local/bin/entrypoint. ...   Up           
redis-cluster_redis3_1   /usr/local/bin/entrypoint. ...   Up           
redis-cluster_redis4_1   /usr/local/bin/entrypoint. ...   Up           
redis-cluster_redis5_1   /usr/local/bin/entrypoint. ...   Up           
redis-cluster_redis6_1   /usr/local/bin/entrypoint. ...   Up     

状态为Up,说明服务均已启动,镜像无问题。
注意:以上镜像不能设置永久密码,其实redis一般是内网访问,可以不需密码。

二、Redis容器集群配置

​ 1、设置集群,这里同样使用了另一个镜像inem0o/redis-trib,执行时会自动下载。

docker run --rm -it inem0o/redis-trib create --replicas 1 192.168.56.11:6001 192.168.56.11:6002 192.168.56.11:6003 192.168.56.11:6004 192.168.56.11:6005 192.168.56.11:6006

示例:docker-compose.yml

version: '3.5'
services:
 redis1:
  image: publicisworldwide/redis-cluster
  network_mode: host
  restart: always
  volumes:
   - /opt/docker-compose/redis-cluster/6001/data:/data
  environment:
   - REDIS_PORT=6001

 redis2:
  image: publicisworldwide/redis-cluster
  network_mode: host
  restart: always
  volumes:
   - /opt/docker-compose/redis-cluster/6002/data:/data
  environment:
   - REDIS_PORT=6002

 redis3:
  image: publicisworldwide/redis-cluster
  network_mode: host
  restart: always
  volumes:
   - /opt/docker-compose/redis-cluster/6003/data:/data
  environment:
   - REDIS_PORT=6003

 redis4:
  image: publicisworldwide/redis-cluster
  network_mode: host
  restart: always
  volumes:
   - /opt/docker-compose/redis-cluster/6004/data:/data
  environment:
   - REDIS_PORT=6004

 redis5:
  image: publicisworldwide/redis-cluster
  network_mode: host
  restart: always
  volumes:
   - /opt/docker-compose/redis-cluster/6005/data:/data
  environment:
   - REDIS_PORT=6005

 redis6:
  image: publicisworldwide/redis-cluster
  network_mode: host
  restart: always
  volumes:
   - /opt/docker-compose/redis-cluster/6006/data:/data
  environment:
   - REDIS_PORT=6006

posted @ 2025-04-21 22:07  碳酸H2CO3  阅读(114)  评论(0)    收藏  举报