Docker实现集成redis主从服务

因为需要搭建一个高可用redis服务在docker里,踩了很多坑,故在此记录这些在docker里常见的坑和docker常用命令。

这里在网上看到有两种方法启动,第一种方法是启动redis容器后,到redis容器里去配置相关内容,第二种方法为用redis配置启动redis容器。但本人亲测目前第一种有效,第二种不知道由于什么原因,redis容器启动后并没有看到相关配置生效。但第二种的docker命令值得学习,也会列出相关命令以供学习。

第一种方法,步骤如下

  1. docker安装,此步不详细叙述,参考[菜鸟课程].(https://www.runoob.com/docker/docker-tutorial.html):
  2. 下载redis镜像:
    打开redis控制台,输入
#检索redis 镜像
docker search redis
#拉取redis镜像
docker pull redis
#检查镜像是否存在
docker images

3.运行容器

启动docker容器,这里启动三个容器,6379作为主库,另外两个作为从库

docker run --name redis-6379 -p 6379:6379 redis
docker run --name redis-6380 -p 6380:6379 redis
docker run --name redis-6381 -p 6381:6379 redis

4.查看容器是否正常启动

docker ps

在这里插入图片描述
5.查询主库容器Ip

由于docker容器之间是互相隔离的,不能互相访问,需要解决容器间的网络问题,需要查看主库的ip信息

docker inspect 主库容器id

在这里插入图片描述
在json字符串里找到IpAddress即为主库容器的虚拟Ip地址,复制下来

在这里插入图片描述

6.配置从库丛属信息
进入从库容器

docker exec -it 从库容器id redis-cli

在这里插入图片描述
输入redis命令

SLAVEOF 172.17.0.3 6379

显示ok后,退出当前容器

exit

另一个从库容器也是如此操作。
7.查看主库容器redis
进入主库容器Redis命令界面,slaves显示2即为成功

info replication

在这里插入图片描述
第二种方法如下:
1、2步与第一种相同
3. 设置redis配置
新增redis配置文件redis-1.conf修改从库redis配置

   daemonize no
   slaveof 172.0.0.3 6379
  1. 启动redis容器
    docker目录切到redis-1.conf所在目录,输入命令启动从库容器
    docker run --name redis-6382 -p 6382:6379 -v redis-1.conf:/usr/local/redis/redis-6382.conf redis:3.2 redis-server /u sr/local/redis/redis-6382.conf
    docker 命令说明如下
    -p 端口号 对应宿主机端口:容器端口号
    -v 宿主机文件挂载到容器内 宿主机文件:容器文件
    –name 名称
    —network
    –network-alias <网络别名> <镜像名>
    5.查看主库容器信息,发现slave并没有增加,配置失败
    在这里插入图片描述
    其他问题:
    由于docker容器间的网络有很多问题,我在cn找到一篇比较好的文章能解决docker容器间网络问题,链接
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值