keepalived 容器在宿主機重啟后無法啟動問題:報錯:daemon is already running


初步猜測原因是:keepalived容器內的keepalived.pid文件在keepalived容器非正常退出時,沒有正確刪除,造成第二次啟動時容器檢查到pid文件已經存在,認為該進程已經存在,因為keepalived容器的啟動檢查機制只允許同一台主機上啟動一個進程,所以無法啟動,並報錯:daemon is already running
注:該問題是keepalived軟件本身存在的一個bug,如果需要優化,可以考慮在keepalived容器內增加腳本,在keepalived容器啟動前進行一次清理動作,主動清理掉原來的keepalived.pid文件,待驗證

 

 

 

已驗證:上面猜測的原因是正確的

可以重新構建keepalived鏡像,在啟動keepalived之前刪除一遍keepalived.pid文件即可

 

新的dockerFile文件

FROM keepalived:1.3.5.0
MAINTAINER wulj

COPY keepalived.sh /etc/init.d/
RUN chmod +x /etc/init.d/keepalived.sh
ENTRYPOINT ["/etc/init.d/keepalived.sh"]

keepalived.sh文件

#!/bin/bash
#decription:start keepalived
echo `ps -ef` > /winhong_test.txt
rm -rf /var/run/keepalived.pid
/usr/sbin/keepalived --dont-fork --log-console --log-detail

 


免責聲明!

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



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