docker-compose 编排方式安装redis 集群(主从复制与哨兵)

11 篇文章 0 订阅

1.安装前准备

[root@localhost ]#mkdir -p  /usr/local/docker-compose-redis-sentinel
将准备文件全部上传到docker-compose-redis-sentinel目录下
准备好redis的主配置文件(redis.conf),从的配置文件(redis.conf),哨兵的配置文件(redis-sentinel.conf)

文件地址:https://github.com/Yinjinshui/docker-compose-redis-sentinel

[root@localhost docker-compose-redis-sentinel]# pwd
/usr/local/docker-compose-redis-sentinel
[root@localhost docker-compose-redis-sentinel]# ll
total 8
drwxrwxrwx. 2 root root   51 Nov 27 20:27 conf
-rwxrwxrwx. 1 root root 3984 Nov 27 21:56 docker-compose.yaml
-rw-r--r--. 1 root root  201 Nov 27 22:15 Dockerfile
drwxrwxrwx. 2 root root   84 Nov 27 21:56 redis-master-conf
drwxrwxrwx. 2 root root   87 Nov 27 22:02 redis-sentinel1-conf
drwxrwxrwx. 2 root root   87 Nov 27 22:02 redis-sentinel2-conf
drwxrwxrwx. 2 root root   87 Nov 27 22:02 redis-sentinel-conf
drwxr-xr-x. 2 root root   84 Nov 27 21:52 redis-slave1-conf
drwxrwxrwx. 2 root root   84 Nov 27 21:56 redis-slave2-conf

2.构建镜像

#在dockerfile目录 执行下面代码,注意后面上下文点号,执行创建镜像;创建完成后可以docker images查看生成的镜像

[root@localhost docker-compose-redis-sentinel]# docker build -t redis .

构建镜像成功之后查看镜像

[root@localhost docker-compose-redis-sentinel]# docker images
REPOSITORY                                     TAG                 IMAGE ID            CREATED             SIZE
redis                                          latest              8c017b1d48b5        8 weeks ago         368MB

创建网卡:

[root@localhost docker-compose-redis-sentinel]# docker network create --driver=bridge --subnet=172.168.0.0/16 redis-test

查看网卡:

 [root@localhost docker-compose-redis-sentinel]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
86d22dbb4990        bridge              bridge              local
dc071396eca2        host                host                local
b53093ec48f4        none                null                local
ad720989869f        redis-test          bridge              local

3.编写docker-compose编排文件docker-compose.yaml

查看构建编排文件的版本

[root@localhost docker-compose-redis-sentinel]# docker-compose version
docker-compose version 1.18.0, build 8dd22a9
docker-py version: 2.6.1
CPython version: 3.6.8
OpenSSL version: OpenSSL 1.0.2k-fips  26 Jan 2017

【注意:安装的时候如果版本不对会自动提示版本】
例子:

[root@localhost docker-compose-redis-sentinel]# docker-compose up -d
WARNING: Found multiple config files with supported names: docker-compose.yml, docker-compose.yaml
WARNING: Using docker-compose.yml

ERROR: Version in "./docker-compose.yml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a supported version (e.g "2.2" or "3.3") and place your service definitions under the `services` key, or omit the `version` key and place your service definitions at the root of the file to use version 1.

【如若版本不对自行修改docker-compose.yaml的版本】
demo :version: “3.3”
在这里插入图片描述
4.执行编排

[root@localhost docker-compose-redis-sentinel]# docker-compose up -d
Creating dc-redis-sentinel ... done
Creating dc-redis-slave1 ... 
Creating dc-redis-master ... 
Creating dc-redis-sentinel1 ... 
Creating dc-redis-sentinel2 ... 
Creating dc-redis-sentinel ... 

5.执行成功后查看容器

[root@localhost docker-compose-redis-sentinel]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                                NAMES
f5464135219f        redis               "/bin/bash start.sh"   12 days ago         Up 4 seconds        6379/tcp, 0.0.0.0:26360->26379/tcp   dc-redis-sentinel
b27b9a7cb185        redis               "/bin/bash start.sh"   12 days ago         Up 4 seconds        6379/tcp, 0.0.0.0:26361->26379/tcp   dc-redis-sentinel1
36b81cbe821d        redis               "/bin/bash start.sh"   12 days ago         Up 4 seconds        6379/tcp, 0.0.0.0:26362->26379/tcp   dc-redis-sentinel2
804f547c09db        redis               "/bin/bash start.sh"   12 days ago         Up 5 seconds        0.0.0.0:6360->6379/tcp               dc-redis-master
b366a048a4d9        redis               "/bin/bash start.sh"   12 days ago         Up 5 seconds        0.0.0.0:6361->6379/tcp               dc-redis-slave1
e53b98603a3c        redis               "/bin/bash start.sh"   12 days ago         Up 5 seconds        0.0.0.0:6362->6379/tcp               dc-redis-slave2

6.编排的启动和关闭都需要在对应的目录下执行

[root@localhost docker-compose-redis-sentinel]#  docker-compose start
[root@localhost docker-compose-redis-sentinel]#  docker-compose stop

7.查看编排容器

[root@localhost docker-compose-redis-sentinel]# docker-compose ps
       Name               Command         State                 Ports               
------------------------------------------------------------------------------------
dc-redis-master      /bin/bash start.sh   Up      0.0.0.0:6360->6379/tcp            
dc-redis-sentinel    /bin/bash start.sh   Up      0.0.0.0:26360->26379/tcp, 6379/tcp
dc-redis-sentinel1   /bin/bash start.sh   Up      0.0.0.0:26361->26379/tcp, 6379/tcp
dc-redis-sentinel2   /bin/bash start.sh   Up      0.0.0.0:26362->26379/tcp, 6379/tcp
dc-redis-slave1      /bin/bash start.sh   Up      0.0.0.0:6361->6379/tcp            
dc-redis-slave2      /bin/bash start.sh   Up      0.0.0.0:6362->6379/tcp   

8.所以容器都是启动成功

此时可以登录redis主节点操作redis,从节点会同步到redis设置的key

[root@localhost docker-compose-redis-sentinel]# docker exec -it dc-redis-master bash
[root@804f547c09db config]# redis-cli -p 6379
127.0.0.1:6379> info replication
 #Replication
role:master
connected_slaves:2
slave0:ip=172.168.0.7,port=6379,state=online,offset=197914,lag=1
slave1:ip=172.168.0.6,port=6379,state=online,offset=197914,lag=1
master_replid:e1387032c15b9b5be0d30273378824a65bfecb8f
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:197914
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:197914

#主节点设置key
在这里插入图片描述
从节点也同步到信息
在这里插入图片描述

哨兵会自动转移宕机主节点:
如若对哨兵不清楚查看:https://blog.csdn.net/yinjinshui/article/details/102551570

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值