记录docker启动redis容器,Redis Desktop Manager无法连接的问题——小白指南

问题描述:

由于linux直接启动redis ,需要繁琐的写启动命令以及指定配置文件,docker直接就run一次,其他时候要启动就start就行了,非常方便,可是本人发现docker启动的redis ,Redis DeskTop Manager无法连接,在成功解决之后,记录这个有些麻烦的问题

当docker启动拉取的redis之后,Redis DeskTop Manager连接报错
redis连接报错


原因分析:

仔细检查ip地址,以及端口,还有docker ps查看到的redis启动信息,全都是正确的,于是我想到了redis容器里面的配置文件出了错误

搜了很多资料,很多人说redis容器默认的配置文件地址在

/usr/local/etc/redis/redis.conf

于是我输入指令

docker exec -it myredis /bin/bash

把里面的文件基本都找了一遍,竟然没有发现配置文件的存在,但是我又想,用本地的redis配置文件当做数据卷挂载在docker启动的redis容器的配置文件不就解决了吗

首先呢检查自己的redis配置文件redis.conf,找到如下内容进行修改

#讲这一行注释掉,或者更改为bind 0.0.0.0
bind 127.0.0.1
#这里本来是yes,但是要改成no
protected-mode no

改完之后执行检查端口占用情况

lsof -i :6379

如果有进程占用直接kill掉,然后就可以使用docker指令区创建并且运行容器了

docker run -d -p 6379:6379 -v /usr/local/redis6.2/redis.conf:/etc/redis.conf --name myredis redis:latest redis-server /etc/redis.conf

备注
-d:守护进程运行
-p:指定端口号,对外的端口号是6379,映射到内部的端口号6379
-v:挂载数据卷,“:”前面的是本地redis服务配置文件地址 “:”后面是redis容器配置文件的地址
redis-server:指定配置文件启动容器

但是遗憾的是,容器根本起不起来,查询docker日志

docker logs myredis

竟然发现没有日志打印!!!!
那么答案只有一个,就是配置文件还有一个关键地方没有注意到
就是这里 redis.conf

#是否以守护进程的方式启动,原来是yes,记得一定要写no
daemonize no

发生问题的原因在于我们docker启动的时候配置的-d 这里也是守护进程启动,与配置文件的daemonize yes发生了冲突,还不会报错,真的让我一顿找
然后就是删除之前的容器

docker rm myredis

将容器重新挂载运行

docker run -d -p 6379:6379 -v /usr/local/redis6.2/redis.conf:/etc/redis.conf --name myredis redis:latest redis-server /etc/redis.conf

docker ps发现redis容器启动成功了,可是还是没办法用redis desktop manager访问,就算重启docker里的redis容器也不行,由古人名言,重启能解决90%的问题,重启虚拟机,连接成功。
(这里我猜测的原因是,有些配置没有刷新,重新之后重新加载就可以了)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值