关于docker安装redis,网上有各种教程。大家可自行安装,写这篇文章的目的是关于以配置文件挂载的方式启动失败的总结
一、Docker安装Redis
个人参考博文:https://blog.csdn.net/u010358168/article/details/97143703
- 安装Redis
通过docker search redis查看redis镜像
通过docker pull redis:latest下载镜像
docker images查看镜像docker
到这里Redis就已经下载完成
但是启动redis之后,使用如: Redis Desktop Manager等连接工具连接时,发现连接不上,那是因为 redis 默认配置只能够本地连接,不能进行远程访问,因此需要手动挂载 redis 配置文件
二、挂载redis配置文件
- 新建挂载配置文件夹
新建data和conf两个文件夹,位置随意。
eg:
mkdir /docker-software/redis/data
mkdir /docker-software/redis/conf
或者
mkdir -p ./redis/{data,conf}
2.下载官网的配置文件并修改 redis.conf:redis.conf下载
http://download.redis.io/redis-stable/redis.conf
修改启动默认配置
bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问
protected-mode no #默认yes,开启保护模式,限制为本地访问
daemonize no#默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败
redis通过配置文件设置密码
requirepass foobared
requirepass 123456
3.把redis.conf文件上传到配置的文件夹下
4.docker 启动 redis
docker run -d --privileged=true -p 6379:6379 -v /docker-software/redis/conf/redis.conf:/etc/redis/redis.conf -v /docker-software/redis/data:/data --name redis redis:latest redis-server /etc/redis/redis.conf --appendonly yes
命令说明
-p 6379:6379:把容器内的6379端口映射到宿主机6379端口
-v /usr/redis/redis.conf:/etc/redis/redis.conf:把宿主机配置好的redis.conf放到容器内的这个位置中
-v /usr/redis/data:/data:把redis持久化的数据在宿主机内显示,做数据备份 redis-server /etc/redis/redis.conf:这个是关键配置,让redis不是无配置启动,而是按照这个redis.conf的配置启动
–appendonly yes:redis启动后数据持久化
***在这里重点说明:***
我使用上边命令启动的时候失败,度娘也没有告诉我为什么
后来研究了下docker镜像及挂载原理
发现,其实:
redis-server /etc/redis/redis.conf
也可以不需要加,至于原因可参考博文:
Docker镜像原理、Docker数据卷(挂载)作用和使用
我使用的是:
docker run -p 6379:6379 --name redis -v /docker-software/redis/redis.conf:/etc/redis/redis.conf -v /docker-software/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
启动成功,查看状态
通过docker ps查看启动状态,是否成功使用Redis Desktop Manager客户端进行连接
界面简单,一看就懂,直接上图。小结
如果使用阿里云等,请务必把相应端口打开