Buenas , hace un tiempo tenia un problema con un docker de mosquitto que cuando le apetecía el muy cabrito se paraba y no había forma de levantarlo , alguno me dirá , haber usado restart: always en el docker compose , pero ya estaba así configurado y no había forma , la unica forma era reiniciar el sistema , cuando se paraba caia por cascada toda la domótica de casa con el Home Assistant influxdb , etc ….
Como el tiempo de reinicio del sistema y los 40 dockers era de menos de 20 segundos opte por una solución a la brava , comprobarlo cada X tiempo y si estaba caído reiniciar el sistema.
Crearemos un fichero sh , yo lo he llamado control_dockers.sh que contendra
# Un log, porque siempre va bien
RUTA_LOG="/home/antonio/control_containers.txt"
#echo "#################################################################" >> $RUTA_LOG
#echo "COMPROBAR ESTADO CONTAINER SQL" >> $RUTA_LOG
#echo "#################################################################" >> $RUTA_LOG
echo `uptime` | sed -e 's/^[ \t]*//' >> $RUTA_LOG
if docker ps | grep -q lamp
then
echo "Funcionando!"
echo "Funcionando!" >> $RUTA_LOG
echo "#################################################################" >> $RUTA_LOG
else
echo "Parado!"
echo "Parado!" >> $RUTA_LOG
echo "*****************************************************************" >> $RUTA_LOG
echo `date +"%T"` " - " `date +"%d-%m-%y"` "REINICIO DEL SISTEMA" >> $RUTA_LOG
echo "*****************************************************************" >> $RUTA_LOG
echo `uptime` | sed -e 's/^[ \t]*//' >> $RUTA_LOG
echo "*****************************************************************" >> $RUTA_LOG
echo "#################################################################" >> $RUTA_LOG
sudo reboot
exit 1
fi
Basicamente busca si el docker esta activo , en este caso un lamp , y si no lo esta reiniciamos dejando siempre un log para poder ver que esta ocurriendo
Añadiremos la tarea a Cron con crontab -e
xxxxxxxxxx
#Control de los dockers
*/30 * * * * /bin/bash /home/antonio/control_dockers.sh
Aquí esta puesto para que se ejecute cada 30 minutos , a la :00 y a las :30 , pero podéis poner la frecuencia que deseéis
El problema con el mosquitto se soluciono con la ultima version estable del docker , ahora lo tengo funcionando con un lamp por si acaso