现象以及排查过程
最近在使用docker来搭建redis服务,但是在启动redis哨兵容器时,总是发现这个容器启动后立马就停止了。首先想到的是不是服务器资源不够用了导致的这个现象,排查后发现不是资源问题。再者猜测是不是启动报错了,查看log后,发现启动正常,且在启动完成后redis服务就停掉了。最后分析应该是redis容器的问题。
Docker需要一个前台进程
要保证Docker容器的运行,必须需要一个前台进程一直运行,这是因为Docker容器默认会把容器内部第一个进程,即pid=1的进程,作为判断容器是否正在运行的依据。如果这个进程挂掉,Docker容器便会直接退出,因此容器中必须有一个前台进程在运行,否则容器会被认为已经挂掉。
redis_7">redis守护进程启动
当 daemonize
的值的含义为守护进程启动,为 yes
时,代表着以守护进程的方式启动,为 no
时代表着前台启动。
解决问题
增加配置 daemonize no
。