docker-compose安装redis集群教程

 更新时间:2025年08月19日 10:59:33   作者:下一个明天_tgm  
本文介绍了使用Docker Compose部署Redis集群的步骤:编写配置文件设置端口和密码,创建数据卷目录,启动容器并检查状态,若集群创建失败,需手动进入容器执行redis-cli命令,处理密码认证及数据清空问题以完成集群配置

docker-compose安装redis集群

1、安装docker-compose命令

此处略过

2、编写docker-compose.yml文件

version: '2.2'

services:
  redis-node1:
    image: redis:5.0
    ## --cluster-announce-ip 你的公网IP 这部分参数 

    command: redis-server --port 7000 --requirepass lingco --cluster-enabled yes --cluster-config-file /data/nodes.conf --appendonly yes --bind 0.0.0.0  --cluster-announce-ip 192.168.1.10
    ports:
      - "7000:7000"
      - "17000:17000"
    volumes:
      - ./data/node1:/data
    networks:
      - redis-cluster

  redis-node2:
    image: redis:5.0
    command: redis-server --port 7001 --requirepass lingco --cluster-enabled yes --cluster-config-file /data/nodes.conf --appendonly yes --bind 0.0.0.0 --cluster-announce-ip 192.168.1.10
    ports:
      - "7001:7001"
      - "17001:17001"
    volumes:
      - ./data/node2:/data
    networks:
      - redis-cluster

  redis-node3:
    image: redis:5.0
    command: redis-server --port 7002 --requirepass lingco --cluster-enabled yes --cluster-config-file /data/nodes.conf --appendonly yes --bind 0.0.0.0 --cluster-announce-ip 192.168.1.10
    ports:
      - "7002:7002"
      - "17002:17002"
    volumes:
      - ./data/node3:/data
    networks:
      - redis-cluster

  redis-node4:
    image: redis:5.0
    command: redis-server --port 7003 --requirepass lingco --cluster-enabled yes --cluster-config-file /data/nodes.conf --appendonly yes --bind 0.0.0.0 --cluster-announce-ip 192.168.1.10
    ports:
      - "7003:7003"
      - "17003:17003"
    volumes:
      - ./data/node4:/data
    networks:
      - redis-cluster

  redis-node5:
    image: redis:5.0
    command: redis-server --port 7004 --requirepass lingco --cluster-enabled yes --cluster-config-file /data/nodes.conf --appendonly yes --bind 0.0.0.0 --cluster-announce-ip 192.168.1.10
    ports:
      - "7004:7004"
      - "17004:17004"
    volumes:
      - ./data/node5:/data
    networks:
      - redis-cluster

  redis-node6:
    image: redis:5.0
    command: redis-server --port 7005 --requirepass lingco --cluster-enabled yes --cluster-config-file /data/nodes.conf --appendonly yes --bind 0.0.0.0 --cluster-announce-ip 192.168.1.10
    ports:
      - "7005:7005"
      - "17005:17005"
    volumes:
      - ./data/node6:/data
    networks:
      - redis-cluster
  redis-init:
    image: redis:5.0
    command: >
      sh -c "redis-server --port 7000 --cluster-enabled yes --cluster-config-file /data/nodes.conf --appendonly yes --bind $$(hostname -i)
      && sleep 5
      && redis-cli --cluster create redis-node1:7000 redis-node2:7001 redis-node3:7002 redis-node4:7003 redis-node5:7004 redis-node6:7005 --cluster-replicas 1"
    depends_on:
      - redis-node1
    networks:
      - redis-cluster
      
  redis-node7:
    image: redis:5.0
    command: redis-server --port 7006 --appendonly yes --bind 0.0.0.0 --cluster-announce-ip 192.168.1.10 --cluster-announce-port 7006 --cluster-announce-bus-port 17006
    ports:
      - "7006:7006"
      - "17006:17006"
    volumes:
      - ./data/node7:/data

networks:
  redis-cluster:

备注:端口7000-7005为集群,密码统一为 lingco,7006为单节点无密码;在同路径下创建 volumes配置的文件夹。

3、执行docker compose命令

在docker-compose.yml目录中执行命令 docker-compose up -d,如果需要在其它目录执行,则需要指定配置文件yml的路径。

4、查看执行结果

5、创建集群

如果docker-compose.yml中command未执行成功或是集群未创建,则需要手动执行,如下:

  • 步骤1、通过命令找到redis集群中的一台,执行:docker ps -a  命令,找到docker容器id
  • 步骤2、执行bash命令:docker exec -it 2b93cf1f4c4f bash,进入控制台
  • 步骤3、执行创建集群:

redis-cli --cluster create 192.168.1.10:7000 192.168.1.10:7001 192.168.1.10:7002 192.168.1.10:7003 192.168.1.10:7004 192.168.1.10:7005 --cluster-replicas 1 -a lingco

备注:如果集群设置有密码,则需要 -a 密码(lingco),需要确认 输入 yes

集群创建成功,可以通过redis管理工具连接

6、问题排查

采用docker compose安装redis集群,端口正常启动,无法连接

测试连接可以使用,使用库号无法连接,出现如上问题可能是 集群未创建成功,需要手动执行创建集群

通过上面 5 中的 步骤1,步骤2,步骤3,来执行。

如果执行 “步骤3” 时出现提示:

“[ERR] Node xxx is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.” 

则需要清空集群中所有节点的数据 data,重新执行命令进行集群创建。

如果执行 “步骤3” 时出现提示:

“[ERR] Node 192.168.1.10:7001 NOAUTH Authentication required.” 

则需要在命令中增加 -a参数来指定密码,

如:

redis-cli --cluster create 192.168.1.10:7000 192.168.1.10:7001 192.168.1.10:7002 192.168.1.10:7003 192.168.1.10:7004 192.168.1.10:7005 --cluster-replicas 1 -a lingco

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 如何在Ubuntu安装docker以及一些常见报错

    如何在Ubuntu安装docker以及一些常见报错

    这篇文章主要介绍了在Ubuntu上安装Docker的步骤,包括前置工作、安装、检查安装结果、常见报错处理以及一些实用的配置和修改,如修改镜像源和目录,需要的朋友可以参考下
    2025-04-04
  • 如何使用 docker compose 搭建 fastDFS文件服务器

    如何使用 docker compose 搭建 fastDFS文件服务器

    这篇文章主要介绍了如何使用 docker compose 搭建 fastDFS文件服务器,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-10-10
  • Docker部署Java项目实践详细介绍

    Docker部署Java项目实践详细介绍

    Docker是一种流行的容器化平台,用于部署和管理Java项目,这篇文章主要给大家介绍了关于Docker部署Java项目的相关资料,通过构建Docker镜像、编写Dockerfile和使用DockerCompose进行多服务部署,需要的朋友可以参考下
    2025-05-05
  • docker --link容器互联的实现

    docker --link容器互联的实现

    –link可以通过容器名互相通信,容器间共享环境变量,本文主要介绍了docker --link容器互联的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • 在Ubuntu中安装Docker和docker的使用方式

    在Ubuntu中安装Docker和docker的使用方式

    这篇文章主要介绍了在Ubuntu中安装Docker和docker的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • 用Docker安装Gitlab的方法步骤

    用Docker安装Gitlab的方法步骤

    这篇文章主要介绍了用Docker安装Gitlab的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • Docker部署Xinference的教程

    Docker部署Xinference的教程

    这篇文章主要介绍了Docker部署Xinference的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • docker-compose部署etcd集群的实现步骤

    docker-compose部署etcd集群的实现步骤

    本文主要介绍了docker-compose部署etcd集群的实现步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • Docker网络之单host网络及使用案例

    Docker网络之单host网络及使用案例

    本文重点给大家讲解Docker单主机网络的相关知识及使用案例,重点是使用案例,感兴趣的朋友一起看看吧
    2017-08-08
  • docker compose部署主从复制的实现

    docker compose部署主从复制的实现

    本文记录了通过 docker compose 搭建一主双从的 Redis 服务。文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08

最新评论