解决Redis容器使用redis.conf启动失败

2022年01月14日 阅读数:0
这篇文章主要向大家介绍解决Redis容器使用redis.conf启动失败,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

​本文实现功能
解决redis容器启动redis.conf时启动及失败
简单了解redis.conf的一些配置
认识docker run命令的参数redis

学习redis.conf的配置文件

打开redis.conf后会看到不少的无用信息
在这里插入图片描述
咱们使用grep命令来简单的处理一个下,而后就能够看到redis.conf的全部配置信息,可是如今输入的命令是不能够编辑的docker

命令cat redis.conf | grep -v "#" | grep -v "^$"
在这里插入图片描述
上边的这个虽然把redis.conf的全部配置信息弄出来了,可是不能修改,咱们能够把这个内容输出到另一个文件里边,这个时候就能够在redis下能够看到一个redis-test.conf的一个文件vim

执行命令:cat redis.conf | grep -v "#" | grep -v "^$" ->redis-test.conf
在这里插入图片描述
这个时候就能够在redis-test.conf里边修改一些配置信息
在这里插入图片描述
在这里咱们先了解几个配置,后边的配置咔咔会在后续的文件依序写出安全

  • daemonize no :redis默认是不做为守护进程使用的,这也就是说为何在你不修改配置文件时直接使用redis-server /redis/redis.conf 启动redis会直接显示一个服务,你在这个终端就没有办法操做其余,只能新开一个终端来链接redis
  • requirepass foobared :redis默认是没有密码链接的,可是为了安全密码仍是须要设置的
  • bind 127.0.0.1:这个配置项通常是直接注释掉的,这个配置开启后就只有本机能够链接redis

以上几个配置信息就是本文所须要知道的三个配置信息bash

认识docker run命令的参数

docker run命令就是建立一个新的容器网络

如下是一个我建立容器使用的命令docker run -itd --restart="always" --name redis -v /usr/local/docker/data:/data -v /usr/local/docker/redis.conf:/etc/redis.conf --net mynetwork -p 6380:6379 --ip 172.10.0.2 redis:4.0 redis-server /etc/redis.conf学习

  • i : 打开STDIN,用于控制台交互
  • t :分配tty设备,该能够支持终端登陆,默认为false
  • d:指定容器运行于前台仍是后台,默认为false
  • v:给容器挂载存储卷,挂载到容器的某个目录
  • –net:容器使用本身自定义的网络
  • -p:是端口号
  • –restart:指定容器中止后的重启策略 no:容器退出时不重启 on-failure:容器故障退出(返回值非零)时重启 always:容器退出时老是重启

解决redis容器启动redis.conf时启动及失败

当咱们认识了redis.conf的几个参数和docker run的几个经常使用参数后,咱们来进行解决这个使用redis.conf启动时直接就失败问题。ui

而后开始建立容器 有一部分伙伴会发现有一个错误WARNING: IPv4 forwarding is disabled. Networking will not work.
在这里插入图片描述
先来解决这个问题
执行命令vim /usr/lib/sysctl.d/00-system.conf
添加如下代码net.ipv4.ip_forward=1
从新启动network命令systemctl restart networkurl

在来执行一下就没有问题了
在这里插入图片描述
而后进入到容器就会发现咱们的问题了,建立重启后直接就退出了
在这里插入图片描述
这个时候是否是非常郁闷,怎么就直接退出了。这也就是为何在上文中,咱们提出了redis.conf和docker run命令参数的一些配置信息。.net

这个时候咱们在回顾一下redis.conf里边是否是有一个daemonize no这个参数是是否以守护进程执行,在开发过程当中咱们都会把这个配置开启 配置为yes 。

而后在回顾一下docker run命令里边有一个参数 -d这个参数也是以守护进程执行。

这下应该就很清楚了,是redis.conf跟docker配置冲突了

打开配置文件把守护进程修改成no
在这里插入图片描述
而后删除刚刚建立的redis容器,在此执行上边的命令,就能够看到容器如今已经建立成功,而且处于开启状态
在这里插入图片描述
这个时候在进入容器docker exec -it redis /bin/bash里边,就能够看到咱们在链接redis-cli时须要输入密码,这也就是在redis.conf里边配置的。
在这里插入图片描述
以上就是咔咔解决Redis容器使用redis.conf启动失败的解决方案