docker的reids镜像默认无配置文件
1、我们从官网下载http://download.redis.io/redis-stable/redis.conf,并放到自己指定目录/mydata/redis下。
按需要修改配置文件:
bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问
protected-mode no #默认yes,开启保护模式,限制为本地访问
daemonize no #默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程
requirepass 123456 #设置密码
appendonly yes #redis持久化
注意:daemonize改为yes会使以配置文件方式启动redis失败
原因见stackoverflow:
When you demonize the Redis process, the final Docker exec process (the one that started Redis) has nothing left to do, so that process exits, and the container ends itself.
If you want to keep the container up, you can either not demonize it, or you can, but you must do something else like call wait, or more preferably, tail -f the redis logs
综上:容器中的应用都应该以前台执行,不能在后台运行。
对于容器而言,就是为了主进程而存在的,主进程退出,容器就失去了存在的意义,从而退出。
2、启动
docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-v /mydata/redis/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf