docker 搭建redis一主两从

1.安装配置docker并设置镜像加速并且启动docker

[root@localhost ~] yum install docker
[root@localhost docker] pwd
/etc/docker
[root@localhost docker] cat daemon.json 
{
  "registry-mirrors": ["https://mzxx8xy8.mirror.aliyuncs.com"]
} 
[root@localhost docker] systemctl start docker

2.搜索redis镜像并拉取

[root@localhost ~] docker search redis
INDEX       NAME                                       DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/redis                            Redis is an open source key-value store th...   8248      [OK]       
docker.io   docker.io/bitnami/redis                    Bitnami Redis Dock

[root@localhost ~] docker pull redis
Using default tag: latest
Trying to pull repository docker.io/library/redis ... 
latest: Pulling from docker.io/library/redis
afb6ec6fdc1c: Pull complete 
608641ee4c3f: Pull complete 
668ab9e1f4bc: Pull complete 
78a12698914e: Pull complete 
d056855f4300: Pull complete 
618fdf7d0dec: Pull complete 
Digest: sha256:ec277acf143340fa338f0b1a9b2f23632335d2096940d8e754474e21476eae32
Status: Downloaded newer image for docker.io/redis:latest
[root@localhost ~] docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/redis     latest              36304d3b4540        10 days ago         104 MB

3.运行redis-server容器并做持久化配置

[root@localhost ~] mkdir /data
主
[root@localhost ~] docker run --name redis1 -d -p 6379:6379 -v /opt/redis1:/data redis
从
[root@localhost ~] docker run --name redis2 -d -p 6380:6380 -v /opt/redis2:/data redis
[root@localhost ~] docker run --name redis3 -d -p 6381:6381 -v /opt/redis3:/data redis

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                              NAMES
33cf8fba7544        docker.io/redis     "docker-entrypoint..."   4 seconds ago       Up 3 seconds        6379/tcp, 0.0.0.0:6381->6381/tcp   redis3
85dcac4b1ea6        docker.io/redis     "docker-entrypoint..."   15 seconds ago      Up 14 seconds       6379/tcp, 0.0.0.0:6380->6380/tcp   redis2
c55f9df4ac6d        docker.io/redis     "docker-entrypoint..."   27 seconds ago      Up 26 seconds       0.0.0.0:6379->6379/tcp             redis

4.查看容器IP

[root@localhost ~]  docker inspect redis1 redis2 redis3 | grep IPAd            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.2",
                    "IPAddress": "172.17.0.2",
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.3",
                    "IPAddress": "172.17.0.3",
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.4",
                    "IPAddress": "172.17.0.4",

注:这里记住主的IP:172.17.0.2
5,配置redis集群,一主两从
我们将redis-maste也就是redis1 配置为主,redis2和redis3配置为从
登录从redis2

从1

[root@localhost ~] docker exec -it redis2 redis-cli
127.0.0.1:6379> SLAVEOF 172.17.0.2 6379
OK
127.0.0.1:6379> ROLE
1) "slave"
2) "172.17.0.2"
3) (integer) 6379
4) "connected"
5) (integer) 0

从2

[root@localhost ~]# docker exec -it redis3 redis-cli
127.0.0.1:6379> SLAVEOF 172.17.0.2 6379
OK
127.0.0.1:6379> ROLE
1) "slave"
2) "172.17.0.2"
3) (integer) 6379
4) "connected"
5) (integer) 140

登录主redis-master redis 1查看主从情况

[root@localhost ~] docker exec -it redis1 redis-cli
127.0.0.1:6379> INFO replication
# Replication
role:master
connected_slaves:2
slave0:ip=172.17.0.3,port=6379,state=online,offset=266,lag=0
slave1:ip=172.17.0.4,port=6379,state=online,offset=266,lag=0

6.验证主从是否集群成功

[root@localhost ~]# docker exec -it redis1 redis-cli
127.0.0.1:6379> set name nginx
OK
127.0.0.1:6379> exit
[root@localhost ~]# docker exec -it redis2 redis-cli
127.0.0.1:6379> get name
"nginx"
127.0.0.1:6379> exit
[root@localhost ~]# docker exec -it redis3 redis-cli
127.0.0.1:6379> get name
"nginx"
127.0.0.1:6379> 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值