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
#!/bin/bash # 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
#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