Docker——阿里云服务器利用docker搭建redis集群

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 本文详细记录了使用Docker搭建Redis集群的过程,包括检查Docker和Docker Compose的安装、创建Redis配置文件、编写`docker-compose.yml`文件、启动Redis节点、创建Redis集群的具体步骤,以及最终的验证方法。文章还提供了在多服务器环境下搭建Redis集群的注意事项,帮助读者全面了解 Redis 集群的部署流程。

本文是博主使用Docker搭建redis集群的记录。


一、是否安装 Docker 和 Docker Compose

使用如下命令验证

docker --version
docker-compose --version


二、创建Redis配置文件

创建一个目录redis-cluster,在目录下创建redis.conf文件

port 6379
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes



三、编写docker-compose.yml

version: 'v1.0'
services:
  redis-node-1:
    image: redis:latest
    container_name: redis-node-1
    command: redis-server /usr/local/etc/redis/redis.conf
    ports:
      - "7001:6379"
    volumes:
      - ./redis.conf:/usr/local/etc/redis/redis.conf
      - ./data/node1:/data
  redis-node-2:
    image: redis:latest
    container_name: redis-node-2
    command: redis-server /usr/local/etc/redis/redis.conf
    ports:
      - "7002:6379"
    volumes:
      - ./redis.conf:/usr/local/etc/redis/redis.conf
      - ./data/node2:/data
  redis-node-3:
    image: redis:latest
    container_name: redis-node-3
    command: redis-server /usr/local/etc/redis/redis.conf
    ports:
      - "7003:6379"
    volumes:
      - ./redis.conf:/usr/local/etc/redis/redis.conf
      - ./data/node3:/data
  redis-node-4:
    image: redis:latest
    container_name: redis-node-4
    command: redis-server /usr/local/etc/redis/redis.conf
    ports:
      - "7004:6379"
    volumes:
      - ./redis.conf:/usr/local/etc/redis/redis.conf
      - ./data/node4:/data
  redis-node-5:
    image: redis:latest
    container_name: redis-node-5
    command: redis-server /usr/local/etc/redis/redis.conf
    ports:
      - "7005:6379"
    volumes:
      - ./redis.conf:/usr/local/etc/redis/redis.conf
      - ./data/node5:/data
  redis-node-6:
    image: redis:latest
    container_name: redis-node-6
    command: redis-server /usr/local/etc/redis/redis.conf
    ports:
      - "7006:6379"
    volumes:
      - ./redis.conf:/usr/local/etc/redis/redis.conf
      - ./data/node6:/data

上面文件定义了6个Redis节点的服务,每个节点映射到主机的不同端口,并将之前创建的 redis.conf 文件挂载到容器内,并且也为每个节点创建了独立的数据目录data。


四、启动所有Redis节点

执行以下命令一键启动所有的redis容器

docker-compose up -d


对应的停止命令

docker-compose down


五、创建 Redis 集群

使用以下命令进入其中一个redis容器

docker exec -it redis-node-1 bash

然后在容器内执行以下命令创建集群:

redis-cli --cluster create 内网ip:7001 内网ip:7002 内网ip:7003 内网ip:7004 内网ip:7005 内网ip:7006 --cluster-replicas 1

因为我们是在一个服务器上,利用不同端口,所以最好使用内网ip,并且7000-7006的安全组端口要打开,可以防止出现以下错误

image.png


--cluster-replicas 1 表示每个主节点有一个从节点。执行该命令后,会提示你确认集群配置,输入 yes 即可完成集群创建,注意一定是yes,搭建成功之后,可以使用以下命令进入redis进行验证

redis-cli -c -h 内网ip -p 7001
set key1 value1
get key1




六、总结

以上是一台服务器通过docker搭建redis集群,如果是多台服务器,那redis.conf的配置文件上bind需要改为公网ip,并且不会使用docker-compose,而是使用docker run命令启动容器,redis-cli后面的ip和端口也要同步进行变化。

相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
13
13
0
4
分享
相关文章
Docker 部署 Redis
在使用 Docker 部署 Redis 时,为实现数据持久化,需正确挂载容器内的数据目录到宿主机。推荐命令如下: ``` docker run -d --name redis -v /mnt/data/redis:/data -p 6379:6379 redis ``` 该命令将宿主机的 `/mnt/data/redis` 目录挂载到容器的 `/data` 目录,确保 Redis 数据持久化。此路径更通用,适合大多数场景。避免使用不匹配的挂载路径,如 `/var/lib/redis` 或 `/mnt/data/redis` 到非默认目录,以防止数据无法正确持久化。
在阿里云ECS云服务器上安装、配置及高效使用Docker与Docker Compose
本文介绍了在阿里云ECS上使用Ubuntu系统安装和配置Docker及Docker Compose的详细步骤。通过这些工具,可以快速部署、弹性扩展和高效管理容器化应用,满足开发和运维需求。内容涵盖Docker的安装、镜像源配置、创建Web程序镜像以及使用Docker Compose部署WordPress等实际操作,并分享了使用体验,展示了阿里云实例的高性能和稳定性。
162 4
Linux服务器部署docker windows
在当今软件开发中,Docker成为流行的虚拟化技术,支持在Linux服务器上运行Windows容器。流程包括:1) 安装Docker;2) 配置支持Windows容器;3) 获取Windows镜像;4) 运行Windows容器;5) 验证容器状态。通过这些步骤,你可以在Linux环境中顺利部署和管理Windows应用,提高开发和运维效率。
61 1
Docker——阿里云服务器使用Docker部署python项目全程小记
本文记录了我在阿里云服务器上使用Docker部署python项目(flask为例)的全过程,在这里记录和分享一下,希望可以给大家提供一些参考。
Docker服务器的图形显示方案
欢迎关注大数据和人工智能技术文章发布的微信公众号:清研学堂,在这里你可以学到夜白(作者笔名)精心整理的笔记,让我们每天进步一点点,让优秀成为一种习惯! 问题描述:一般docker实操时都是作为服务器,以字符方式交互,非常不方便。
1915 0
docker容器为啥会开机自启动
通过配置适当的重启策略,Docker容器可以在主机系统重启后自动启动。这对于保持关键服务的高可用性和自动恢复能力非常有用。选择适合的重启策略(如 `always`或 `unless-stopped`),可以确保应用程序在各种情况下保持运行。理解并配置这些策略是确保Docker容器化应用可靠性的关键。
288 93
Docker+consul容器服务的更新与发现
通过本文的介绍,我们详细探讨了如何结合Docker和Consul来实现容器服务的更新与发现。通过Consul的服务注册和发现功能,可以高效地管理和监控容器化服务,确保系统的高可用性和可扩展性。希望本文能帮助您在实际项目中更好地应用Docker和Consul,提高系统的可靠性和管理效率。
65 23
ubuntu22 编译安装docker,和docker容器方式安装 deepseek
本脚本适用于Ubuntu 22.04,主要功能包括编译安装Docker和安装DeepSeek模型。首先通过Apt源配置安装Docker,确保网络稳定(建议使用VPN)。接着下载并配置Docker二进制文件,创建Docker用户组并设置守护进程。随后拉取Debian 12镜像,安装系统必备工具,配置Ollama模型管理器,并最终部署和运行DeepSeek模型,提供API接口进行交互测试。
357 15
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
348 78
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
221 6
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结