Docker多台主机安装Redis集群

1. 环境准备

  • 1)装备两台机器,例如机器1:192.168.3.92,机器2:192.168.3.93

  • 2)两台机器安装docker,docker的安装参见Docker的基本安装和使用

  • 3)两台机器安装docker-compose

    2. 安装Redis

    2.1 机器1:192.168.3.92安装

    2.1.1)创建存放redis的文件夹

    mkdir /home/redis
    cd /home/redis
    

    2.1.2)创建docker-compose.yml,使用docker-compose安装创建

    #创建docker-compose.yml
    touch docker-compose.yml
    # 编辑文件
    vim docker-compose.yml
    

    docker-compose.yml文件的内容如下:

    这里的配置文件表示,我们三个redis,2个主,1个从。

    version: '3.4'
    #这里是使用了别人配置好的集群镜像 publicisworldwide/redis-cluster
    x-image:
     &default-image
     publicisworldwide/redis-cluster
    x-restart:
     &default-restart
     always
    x-netmode:
     &default-netmode
     host
    
    services:
     redis1:
      image: *default-image
      network_mode: *default-netmode
      restart: *default-restart
      volumes:
      - /data/redis/master7001/data:/data
      - /data/redis/master7001/conf/redis.conf:/usr/local/etc/redis/redis.conf
      - /data/redis/master7001/log/redis.log:/root/redis/redis.log
      environment:
      - REDIS_PORT=7001
    
     redis2:
      image: *default-image
      network_mode: *default-netmode
      restart: *default-restart
      volumes:
      - /data/redis/master7002/data:/data
      - /data/redis/master7002/conf/redis.conf:/usr/local/etc/redis/redis.conf
      - /data/redis/master7002/log/redis.log:/root/redis/redis.log
      environment:
      - REDIS_PORT=7002
    
     redis3:
      image: *default-image
      network_mode: *default-netmode
      restart: *default-restart
      volumes:
      - /data/redis/slave7003/data:/data
      - /data/redis/slave7003/conf/redis.conf:/usr/local/etc/redis/redis.conf
      - /data/redis/slave7003/log/redis.log:/root/redis/redis.log
      environment:
      - REDIS_PORT=7003
    

    2.1.3)使用docker-compose创建容器

    #后台启动redis
    docker-compose up -d
    #启动成功以后,使用docker查看镜像
    docker ps
    
    启动成功

    2.2 机器2:192.168.3.93安装

    2.2.1)创建存放redis的文件夹

mkdir /home/redis
cd /home/redis

​ 2.2.2)创建docker-compose.yml,使用docker-compose安装创建

#创建docker-compose.yml
touch docker-compose.yml
# 编辑文件
vim docker-compose.yml

docker-compose.yml文件的内容如下:

这里的配置文件表示,我们三个redis,2个从,1个主。

version: '3.4'

x-image:
 &default-image
 publicisworldwide/redis-cluster
x-restart:
 &default-restart
 always
x-netmode:
 &default-netmode
 host

services:
 redis1:
  image: *default-image
  network_mode: *default-netmode
  restart: *default-restart
  volumes:
  - /data/redis/slave7001/data:/data
  - /data/redis/slave7001/conf/redis.conf:/usr/local/etc/redis/redis.conf
  - /data/redis/slave7001/log/redis.log:/root/redis/redis.log
  environment:
  - REDIS_PORT=7001

 redis2:
  image: *default-image
  network_mode: *default-netmode
  restart: *default-restart
  volumes:
  - /data/redis/slave7002/data:/data
  - /data/redis/slave7002/conf/redis.conf:/usr/local/etc/redis/redis.conf
  - /data/redis/slave7002/log/redis.log:/root/redis/redis.log
  environment:
  - REDIS_PORT=7002

 redis3:
  image: *default-image
  network_mode: *default-netmode
  restart: *default-restart
  volumes:
  - /data/redis/master7003/data:/data
  - /data/redis/master7003/conf/redis.conf:/usr/local/etc/redis/redis.conf
  - /data/redis/master7003/log/redis.log:/root/redis/redis.log
  environment:
  - REDIS_PORT=7003

​ 2.2.3)使用docker-compose创建容器

#后台启动redis
docker-compose up -d
#启动成功以后,使用docker查看镜像
docker ps
启动成功

2.3 配置集群

以上只是启动了redis服务,还没有加上集群,我们运行下面的命令配置上集群

docker run --rm -it --net host inem0o/redis-trib create --replicas 1 192.168.3.92:7001 192.168.3.92:7002 192.168.3.93:7003 192.168.3.93:7001 192.168.3.93:7002 192.168.3.92:7003

前面这三个是主服务:192.168.3.92:7001 192.168.3.92:7002 192.168.3.93:7003

后面这三个是从服务,与主服务的顺序一一对应:192.168.3.93:7001 192.168.3.93:7002 192.168.3.92:7003

因为前面我们没有下载redis-trib,这里会自动下载这个镜像。

集群启动成功后,我们进行简单测试,我们选择192.168.3.93进行测试

#查看容器
docker ps
#进入容器
docker exec -it d47cf9412a9b  /bin/bash
#进入redis客户端,注意集群模式,连接时需要输入 -c
redis-cli -h 127.0.0.1 -p 7002 -c
#连接成功以后,设置值
set 1 1

如下图所示,我们可以看到设置的值分到槽位9842,端口7003,不存储我在我们登陆的7002端口。表示集群已成功安装,并且运行正常。

集群验证

你可能感兴趣的:(Docker多台主机安装Redis集群)