最近几天尝试使用redis 、rabbitMQ、springboot 搭建一个网站购物的Demo,因为一些缘故需要修改redis的配置。但是进入docker 进入redis已经启动的容器后,没有找到redis的配置文件redis.conf
从网站查了一下资料,docker启动redis镜像里是没有配置文件的,至于其他的太多了没看。下面我描述一下我的做法:
1、停止并删除当前容器。
2、取一份新的redis.conf,并修改需要的配置,一般来说我们需要修改的内容仅有下面几个
# Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程
deamonize no
# 你可以绑定单一接口,如果没有绑定,所有接口都会监听到来的连接
# bind 127.0.0.1
# 因为redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认为no
appendonly no
# 设置Redis连接密码,如果配置了连接密码,客户端在连接Redis时需要通过
# auth <password>命令提供密码,默认关闭,当前密码为123456
requirepass 123456
3、将redis.conf放置在宿主机的/root/redis/redis.conf的路径上,并映射到docker容器的/etc/redis/redis.conf位置。此后在启动容器的docker run创建并启动容器的时候,可以使redis使用被映射的redis.conf配置文件。
4、启动redis的容器
(其中关于docker VOLUME的内容可以参考这一边文章
https://www.cnblogs.com/kevingrace/p/6238195.html)
docker run -d -p 6379:6379 --name redis3
-v /root/redis/redis.conf:/etc/redis/redis.conf
-v root/redis/data:/data
hub.c.163.com/library/redis:latest
redis-server /etc/redis/redis.conf --appendonly yes
将本地配置文件映射到镜像中,这样更改本地文件就可以直接修改镜像中的配置了,更改之后使用docker restart+容器ID 重启服务。
-v /docker/redis/redis.conf:/etc/redis/redis.conf
-v root/redis/data:/data
启动时最后也可以加配置参数“--appendonly yes”
上面这个过程中有一个坑,即“daemonize no”这个配置,如果在启动容器的时候这个参数值为yes的话,是无法启动镜像的。
网友评论