今天博主在 docker 里装了一下 redis ,发现了一个问题,平时 redis 开启远程连接,只要改一下配置文件就行了
但是 docker 里的 redis 只有一个镜像,没有配置文件啊。这就有点操蛋了,于是乎博主又是一顿操作,终于百度到了能用的
先记录一波,以防以后踩坑
1.先pull一手,把镜像搞下来
docker pull redis
2.pull完后看一下有没有镜像搞下来
安装好之后使用docker images即可查看
docker images
3.去redis官网下个配置文件
因为需要redis的配置文件,这里最好还是去redis的官方去下载一个redis使用里面的配置文件即可
redis中文官方网站:/download.html
下载后解压出来:
4.配置redis.conf配置文件
修改redis.conf
配置文件:
主要配置的如下:
bind 127.0.0.1 #注释掉这部分,使redis可以外部访问daemonize no#用守护线程的方式启动requirepass 你的密码#给redis设置密码appendonly yes#redis持久化默认是notcp-keepalive 300 #防止出现远程主机强迫关闭了一个现有的连接的错误 默认是300
5.创建本地与docker映射的目录,即本地存放的位置
创建本地存放redis的位置;
可以自定义,因为我的docker的一些配置文件都是存放在/data目录下面的,所以我依然在/data目录下创建一个redis目录,这样是为了方便后期管理
truedei@truedei:redis-5.0.5$ sudo mkdir /data/redistruedei@truedei:redis-5.0.5$ sudo mkdir /data/redis/data
6. 启动redis (示例)
docker run -p 6379:6379 --name redis -v /data/redis/redis.conf:/etc/redis/redis.conf -v /data/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
-p 6379:6379
:把容器内的6379端口映射到宿主机6379端口
-v /data/redis/redis.conf:/etc/redis/redis.conf
:把宿主机配置好的redis.conf放到容器内的这个位置中
-v /data/redis/data:/data
:把redis持久化的数据在宿主机内显示,做数据备份
redis-server /etc/redis/redis.conf
:这个是关键配置,让redis不是无配置启动,而是按照这个redis.conf的配置启动
–appendonly yes
:redis启动后数据持久化
7.启动完成后看一手是否启动成功 ,再远程连接一手,基本都是ok的了
docker ps
8、外部连接redis失败 需要排查
redis开始了保护模式,继续查看redis.conf文件
解决方法分为两种:
1、关闭protected-mode模式
protected-mode=no2、配置bind或者设置密码
bind 0.0.0.0 或者 bind 指定ip