[docker学习笔记] 14 Docker Compose 搭建redis cluster

#192.168.10.10/11,分别执行

 rm -rf /usr/local/docker-redis #删除旧集群数据
 mkdir -p /usr/local/docker-redis/redis-cluster #创建存放目录
 cd /usr/local/docker-redis/redis-cluster
 vi redis-cluster.tmpl
 port ${PORT}
 requirepass 1234
 masterauth 1234
 protected-mode no
 daemonize no
 appendonly yes
 cluster-enabled yes
 cluster-config-file nodes.conf
 cluster-node-timeout 15000
 cluster-announce-ip 192.168.146.10 # 另一个是11
 cluster-announce-port ${PORT}
 cluster-announce-bus-port 1${PORT}
 for port in `seq 6471 6473`;do \
 mkdir -p ${port}/conf \
 && PORT=${port} envsubst < redis-cluster.tmpl > ${port}/conf/redis.conf \
 && mkdir -p ${port}/data;\
 done

另一个

 for port in `seq 6474 6476`;do \
 mkdir -p ${port}/conf \
 && PORT=${port} envsubst < redis-cluster.tmpl > ${port}/conf/redis.conf \
 && mkdir -p ${port}/data;\
 done

在当前目录,编辑dockercompose file

 vi docker-compose.yml
 version: "3.8"
 ​
 services:
   redis-6471: 
     image: redis 
     container_name: redis-6471
     restart: always 
     network_mode: "host" 
     volumes: 
       - /usr/local/docker-redis/redis-cluster/6471/conf/redis.conf:/usr/local/etc/redis/redis.conf
       - /usr/local/docker-redis/redis-cluster/6471/data:/data
     command: redis-server /usr/local/etc/redis/redis.conf 
   
   redis-6472: 
     image: redis 
     container_name: redis-6472 
     restart: always 
     network_mode: "host" 
     volumes: 
       - /usr/local/docker-redis/redis-cluster/6472/conf/redis.conf:/usr/local/etc/redis/redis.conf
       - /usr/local/docker-redis/redis-cluster/6472/data:/data
     command: redis-server /usr/local/etc/redis/redis.conf 
     
   redis-6473: 
     image: redis 
     container_name: redis-6473 
     restart: always 
     network_mode: "host" 
     volumes: 
       - /usr/local/docker-redis/redis-cluster/6473/conf/redis.conf:/usr/local/etc/redis/redis.conf
       - /usr/local/docker-redis/redis-cluster/6473/data:/data
     command: redis-server /usr/local/etc/redis/redis.conf

另一个

 version: "3.8"
 ​
 services:
   redis-6474: 
     image: redis 
     container_name: redis-6474
     restart: always 
     network_mode: "host" 
     volumes: 
       - /usr/local/docker-redis/redis-cluster/6474/conf/redis.conf:/usr/local/etc/redis/redis.conf
       - /usr/local/docker-redis/redis-cluster/6474/data:/data
     command: redis-server /usr/local/etc/redis/redis.conf 
   
   redis-6475: 
     image: redis 
     container_name: redis-6475 
     restart: always 
     network_mode: "host" 
     volumes: 
       - /usr/local/docker-redis/redis-cluster/6475/conf/redis.conf:/usr/local/etc/redis/redis.conf
       - /usr/local/docker-redis/redis-cluster/6475/data:/data
     command: redis-server /usr/local/etc/redis/redis.conf 
     
   redis-6476: 
     image: redis 
     container_name: redis-6476 
     restart: always 
     network_mode: "host" 
     volumes: 
       - /usr/local/docker-redis/redis-cluster/6476/conf/redis.conf:/usr/local/etc/redis/redis.conf
       - /usr/local/docker-redis/redis-cluster/6476/data:/data
     command: redis-server /usr/local/etc/redis/redis.conf

后台模式执行

 docker-compose up -d #后台模式执行,如果显示权限拒绝,则进行授权sudo chmod +x /usr/local/bin/docker-compose
 #以下只在10或是11机器
 ​
 docker exec -it redis-6471 bash #随便进入一个容器
 cd /usr/local/bin #跳转
 #创建
 redis-cli -a 1234 --cluster create 192.168.146.10:6471 192.168.146.10:6472 192.168.146.10:6473 192.168.146.11:6474 192.168.146.11:6475 192.168.146.11:6476 --cluster-replicas 1
 exit
 docker-compose down #移除。让移除变得简单?.....其实也没省几步

你可能感兴趣的:(架构,docker,redis,ruby)