docker构建redis集群docker构建redis集群的时候 比如3主3从

docker构建redis集群
docker构建redis集群的时候 比如3主3从

img


它没有暴露端口
那在容器里搭建主从的时候为什么用虚拟机的ip呢
redis-cli --cluster create 虚拟器地址:端口 虚拟机地址:端口1 虚拟:端口 虚拟地址:端口 虚地址:端口 虚拟机地址:端口 --cluster-replicas 1

应该是你用了参数--net=host参数,这个参数会使得容器和宿主机共用一个网络空间。你每个容器的redis对应一个端口,也就是宿主机(应该是你的虚拟机)对应的端口,你可以通过宿主机ip+端口连接到对应容器的Redis

【以下回答由 GPT 生成】

对于如何使用Docker构建Redis集群,可以按照以下步骤进行操作:

  1. 首先,确保已经安装了Docker以及Docker Compose工具。

  2. 创建一个名为docker-compose.yml的文件,在该文件中定义Redis集群的配置。以下是一个简单的示例:

version: '3'
services:
  redis-1:
    image: redis
    restart: always
    ports:
      - 7001:6379
    volumes:
      - ./redis-1:/data
    command: redis-server --port 6379 --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes

  redis-2:
    image: redis
    restart: always
    ports:
      - 7002:6379
    volumes:
      - ./redis-2:/data
    command: redis-server --port 6379 --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes

  redis-3:
    image: redis
    restart: always
    ports:
      - 7003:6379
    volumes:
      - ./redis-3:/data
    command: redis-server --port 6379 --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes

在上面的示例中,我们定义了三个Redis容器,分别命名为redis-1redis-2redis-3。 它们使用了Redis官方的镜像redis,并且将宿主机的端口映射到容器内的Redis端口(6379)。此外,还挂载了一个数据卷,用于持久化存储Redis数据。

  1. 打开终端,进入包含docker-compose.yml文件的目录,执行以下命令,启动Redis集群:
docker-compose up -d

该命令将会在后台运行Redis集群容器。

  1. 接下来,需要使用redis-cli命令行工具创建和配置Redis集群。首先,进入某个Redis容器:
docker exec -it [CONTAINER_ID] sh

其中,[CONTAINER_ID]是Redis容器的ID。

  1. 在容器内,执行以下命令,创建Redis集群:
redis-cli --cluster create [IP]:[PORT] [IP]:[PORT] [IP]:[PORT] --cluster-replicas 0

其中,[IP][PORT]分别是Redis容器的宿主机IP地址和端口号。例如,使用上述示例的默认配置,可以执行以下命令:

redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 --cluster-replicas 0

该命令将会在指定的Redis容器上创建一个带有主节点和0个从节点的Redis集群。

  1. 至此,Redis集群已经成功构建。可以使用redis-cli或任何Redis客户端进行连接和操作。

以上就是使用Docker构建Redis集群的具体步骤。如果有什么问题,请随时提问。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^