docker使用redis.conf配置文件方式启动redis无反应无日志

  如题,场景重现:因为配置多了,不想通过参数来启动docker容器中的redis,特意上github找了对应版本的redis.conf,修改了相关配置,只让本机使用:

 

 

  上传到/mydata/redis/data目录后,因为我是在普通用户下,所以需要将redis.conf文件修改下属主和组:

[mall@VM_0_7_centos data]$ ll
total 48
-rw-r--r-- 1 polkitd input     0 Nov  6 03:02 appendonly.aof
-rw-r--r-- 1 root    root  47759 Nov  6 10:49 redis.conf
[mall@VM_0_7_centos data]$ sudo chown polkitd.input redis.conf 
[mall@VM_0_7_centos data]$ ll
total 48
-rw-r--r-- 1 polkitd input     0 Nov  6 03:02 appendonly.aof
-rw-r--r-- 1 polkitd input 47759 Nov  6 10:49 redis.conf

 

  接着停掉原来的redis、删除原有docker容器中的redis镜像,再重新以配置文件方式启动:

[mall@VM_0_7_centos data]$ sudo docker stop redis
redis
[mall@VM_0_7_centos data]$ sudo docker rm redis
redis
[mall@VM_0_7_centos data]$ sudo docker run -p 6379:6379 --name redis -v /mydata/redis/data/redis.conf:/etc/redis/redis.conf -v /mydata/redis/data:/data -d redis:3.2 redis-server /etc/redis/redis.conf
a02b1a8d290e276d401a612f9a8239a01aab3b2feb952dfed50b33da2d3f5a54

  

  然而,没有反应,进程并未成功起来:

 

   也没有报错日志:

 

  解决方案:在redis.conf中注掉daemonize yes这一行,或者改为daemonize no。因为我们的docker run里参数-d就是以守护进程方式启动redis,而配置文件里daemonize yes这个东东再次以守护进程方式启动,而且它会读取pidfile这个配置的文件作为进程ID文件。说白了,就是docker启动参数跟redis.conf配置冲突了。

  改redis.conf:

 

   再启docker,ok了:

 

  现在没法从外网连接进来了:

 

posted on 2019-11-06 11:29  不想下火车的人  阅读(13624)  评论(2编辑  收藏  举报

导航