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了:

 

  現在沒法從外網連接進來了:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM