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
浙公网安备 33010602011771号