docker redis集群搭建(一主多从)

一、环境准备

  • redis:3.2镜像

二、构建步骤

  • 创建网络
    建立docker容器之前通信网络,doker容器之前通信方式有两种,一种是基于Docker Networking ,另一种基于Docker连接(link),区别如下:
  • Docker networking 可以连接到不同宿主机的机器上
  • 通过Docker networking连接的容器可以在无需更新连接的情况下,停止、启动或者重启容器。而使用连接,则肯能需要更新一些配置,或者重启Docker容器直接的连接
  • 使用Docker networking,不必事先创建容器去连接它。同样,也不必关心容器的运行顺序。
docker network create redis-network

可以通过命令 docker network ls查看是否创建成功

[root@localhost redis]# docker network ls
NETWORK ID          NAME                  DRIVER              SCOPE
a8f114412dab        adc_backend_default   bridge              local
490137535f8f        adc_default           bridge              local
f4bdb396fe88        bridge                bridge              local
cf0831fa2009        host                  host                local
6ad61f118b1d        none                  null                local
13997ac1e932        redis-network         bridge              local
f857358334a3        zookeeper_default     bridge              local

  • 构建Redis 容器 ,构建目录为/home/dongzhi.wang/Develop/redis
    分别创建三个文件夹 001 ,002 ,003,
    每个文件夹中分别创建 conf 和data文件夹,并将事先准备好的redis.conf配置文件拷贝到conf目录下
    目录结构如下:
[root@localhost redis]# ll
总用量 0
drwxr-xr-x. 4 root root 30 7月  18 14:16 001
drwxr-xr-x. 4 root root 30 7月  18 14:19 002
drwxr-xr-x. 4 root root 30 7月  18 14:31 003

001目录为master目录,结构如下:

[root@localhost 001]# ls
conf  data
  • cd /home/dongzhi.wang/Develop/redis/001 下,执行构建命令
docker run --network redis-network -v $PWD/conf/redis.conf:/usr/local/etc/redis/redis.conf -p 8085:6379  --privileged=true --name redis-container-001 -d redis:3.2  redis-server /usr/local/etc/redis/redis.conf

其它两个节点类似:

docker run --network redis-network -v $PWD/conf/redis.conf:/usr/local/etc/redis/redis.conf -p 8099:6379  --privileged=true --name redis-container-002 -d redis:3.2  redis-server /usr/local/etc/redis/redis.conf
docker run --network redis-network -v $PWD/conf/redis.conf:/usr/local/etc/redis/redis.conf -p 8098:6379  --privileged=true --name redis-container-003 -d redis:3.2  redis-server /usr/local/etc/redis/redis.conf
  • 配置从节点的master节点(此处为redis-container-001为主节点,其它为从节点)
    备注:允许其它节点连接,需要更改redis.conf配置文件,将每个节点的 bind 配置项 改为允许所有连接接入
bind *
  • 最后利用slaveof命令依次配置 slave节点的master节点
    进入redis-container-002容器
docker exec -it redis-container-002 redis-cli

执行命令:

slaveof redis-container-001 8085

其中 redis-container-001为容器名称,8085为master端口

其它节点配置类似

三、验证

在mater节点,添加数据,查看slave节点是否有数据,如果有,则搭建成功

你可能感兴趣的:(docker)