(一)docker跑redis

1、简单方式:
docker run -id -p 6379:6379 redis --requirepass 123456

-p指定端口,服务器或虚拟机的6379映射到redis容器的6379。最好还是设置个密码。直接进容器redis-cli测试连接就好了,直接连接时后面加上 -a 123456就不用auth认证了。
在这里插入图片描述
这样运行有个很大的弊端
1、你跑的redis在它容器中的端口必须是redis的默认端口 6379,如果换成6378的话,你连不上,为什么?看看下图,我进入这个redis所在容器,找遍了redis相关的所有文件,没有看到redis的配置文件,配置文件都找不到,就不能改人家的默认端口,但是用docker跑redis又不一样,我所有容器都用6379,无限开redis容器就是了,宿主机换端口映射过去就行了,容器是隔离的。
在这里插入图片描述
2、正确方式:
你先随便找个路径创建一个空目录,切换到这个空目录,把redis.conf配置文件wget下来,自己可以把多余的解释删掉看起来舒服一点,现在你这个目录就只有个redis.conf。
vim进去修改这几个选项:
1、dir ./data 改为dir /data。人家容器内部专门给你留的/data来放,还是改一下。
2、那个持久化改为yes,要不然就白挂载data了
3、其余的配置项就跑起来后自己在宿主机改。
再跑这个命令:

docker run -id --name redis -p 6379:6379
-v $PWD/data:/data
-v $PWD/redis.conf:/etc/redis/redis.conf
redis redis-server /etc/redis/redis.conf
–requirepass 123456

4、要是跑不起来(exited状态),就docker logs 这个容器id。会有报错信息,看报错信息改配置。
然后再docker restart id。
在这里插入图片描述
两个-v是挂载redis持久化的数据和redis的配置文件,一说到这个挂载数据卷,到底挂目录还是文件?其实,挂目录就是等于挂文件,难道目录里不能放文件吗?就像跑tomcat,只挂一个webapps,你往webapps里放文件,最后还是能访问到。
但有特殊情况,就是挂配置文件,docker跑redis,你要在启动redis容器时就要redis-server /etc/redis/redis.conf ,相当于你就已经使用了这个redis.conf了,所以才需要提前准备好。$PWD就是当前路径的意思,最好加个密码,别想着去在配置文件改密码,因为我现在还不知道怎样重启docker通过配置文件启动的容器,加密后的redis连接也不麻烦,通过Redis连接就加个password参数,django就这样连redis://:密码@IP:端口/库号

3、最后就是连接docker跑的redis容器
有个很重要的点,如果你只跑一个redis服务,那么你应该会直接6379映射到6379。
但是如果你要在这台机上跑多个redis服务,那肯定你要把宿主机的6379换成别的,都知道一个端口只能开一个进程。
所以假如你要开第二个redis或多个容器,端口就不能用6379,要用其他的,就像-p 8001:6379
到连接的时候:可以利用自己的redis客户端也可以进入容器,redis-cli -h 你的IP -p 8001,必须指定-p,因为你没有使用默认端口6379就必须指定,有密码就auth认证一下,或者直接连接时8001后加 -a 你的密码

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值