ubuntu中使用docker搭建redis集群

docker的安装,redis镜像拉取

创建外部桥接网络

docker network create -d macvlan --subnet=192.168.148.0/24 --gateway=192.168.148.1 -o parent=ens33 mycluster

配置docker-compose.yml帮助快速启动redis镜像

version: "3"

services:
  redis7001:
    image: redis:latest # 指定redis镜像,可以是name:tag/id
    container_name: redis7001 # 启动后的镜像名称,可有可无
    ports:
      - "7001:7001" # 指定对外端口
      - "17001:17001" # 指定集群端口,根据官网一般为对外端口+10000
    volumes:
      # 挂载主机中的配置文件
      - /home/duron/docker/redis_cluster/redis.conf:/conf/redis.conf
      # 将数据保存在主机上, 防止丢失
      - /home/duron/docker/redis_cluster/7001:/data
    command:
      # 默认的redis启动命令
      - "redis-server"
      # 加载指定的配置文件,这里是镜像内的路径
      - "/conf/redis.conf"
      # 对外端口号,也可以在redistribution.conf中配置
      - "--port 7001"
      # 开启redis集群模式,也可以在redistribution.conf中配置
      - "--cluster-enabled yes"
      # 集群节点配置文件名,也可以在redistribution.conf中配置
      - "--cluster-config-file nodes-7001.conf"
    networks:
      extnetwork:
        ipv4_address: 192.168.148.71 # 向桥接网络申请ip地址

  redis7002:
    image: redis:latest
    container_name: redis7002
    ports:
      - "7002:7002"
      - "17002:17002"
    volumes:
      - /home/duron/docker/redis_cluster/redis.conf:/conf/redis.conf
      - /home/duron/docker/redis_cluster/7002:/data
    command:
      - "redis-server"
      - "/conf/redis.conf"
      - "--port 7002"
      - "--cluster-enabled yes"
      - "--cluster-config-file nodes-7002.conf"
    networks:
      extnetwork:
        ipv4_address: 192.168.148.72

  redis7003:
    image: redis:latest
    container_name: redis7003
    ports:
      - "7003:7003"
      - "17003:17003"
    volumes:
      - /home/duron/docker/redis_cluster/redis.conf:/conf/redis.conf
      - /home/duron/docker/redis_cluster/7003:/data
    command:
      - "redis-server"
      - "/conf/redis.conf"
      - "--port 7003"
      - "--cluster-enabled yes"
      - "--cluster-config-file nodes-7003.conf"
    networks:
      extnetwork:
        ipv4_address: 192.168.148.73

  redis7004:
    image: redis:latest
    container_name: redis7004
    ports:
      - "7004:7004"
      - "17004:17004"
    volumes:
      - /home/duron/docker/redis_cluster/redis.conf:/conf/redis.conf
      - /home/duron/docker/redis_cluster/7004:/data
    command:
      - "redis-server"
      - "/conf/redis.conf"
      - "--port 7004"
      - "--cluster-enabled yes"
      - "--cluster-config-file nodes-7004.conf"
    networks:
      extnetwork:
        ipv4_address: 192.168.148.74

  redis7005:
    image: redis:latest
    container_name: redis7005
    ports:
      - "7005:7005"
      - "17005:17005"
    volumes:
      - /home/duron/docker/redis_cluster/redis.conf:/conf/redis.conf
      - /home/duron/docker/redis_cluster/7005:/data
    command:
      - "redis-server"
      - "/conf/redis.conf"
      - "--port 7005"
      - "--cluster-enabled yes"
      - "--cluster-config-file nodes-7005.conf"
    networks:
      extnetwork:
        ipv4_address: 192.168.148.75

  redis7006:
    image: redis:latest
    container_name: redis7006
    ports:
      - "7006:7006"
      - "17006:17006"
    volumes:
      - /home/duron/docker/redis_cluster/redis.conf:/conf/redis.conf
      - /home/duron/docker/redis_cluster/7006:/data
    command:
      - "redis-server"
      - "/conf/redis.conf"
      - "--port 7006"
      - "--cluster-enabled yes"
      - "--cluster-config-file nodes-7006.conf"
    networks:
      extnetwork:
        ipv4_address: 192.168.148.76


networks:
  extnetwork: # 定义外部桥接网络
    external:
      name: mycluster	

启动集群

docker-compose up -d

镜像全部启动成功。准备下一步,开始创建集群

docker exec -it redis7006 redis-cli --cluster create 192.168.148.71:7001 192.168.148.72:7002 192.168.148.73:7003 192.168.148.74:7004 192.168.148.75:7005 192.168.148.76:7006 --cluster-replicas 1

中途需要输入:yes

此时的redis集群是不安全的,可以在配置文件中使用密码(requirepass)参数。

验证集群

输入cluster info查看集群信息,此时已为 ok,再测试一下set和get,另外可以看到,结点会自己切换,并且6061端口set和数据可以在6062端口get到

进入其中一个容器,执行redis-cli。

docker exec -it redis7001 redis-cli -p 7001 -c

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值