Se siamo alla ricerca di un modo per eseguire il monitoring dei container Docker possiamo affidarci a poche righe scritte in bash. L’esempio seguente non è dei più raffinati, ma è un’ottima base di partenza per successive evoluzioni.
Script bash per il monitoring di container Docker
Il seguente codice può essere copiato ed eseguito as it is. Ricordarsi solo di cambiare il nome del container alla riga 28.
#!/bin/bash
echo "---------------------------------------------------------"
echo "---------------DOCKER CONTAINER MONITORING---------------"
echo "---------------------------------------------------------"
echo
RED='\033[0;31m'
GREEN='\033[0;32m'
NOCOLOR='\033[0m'
#BEGIN TEST DOCKER STATE
if docker info > /dev/null 2>&1; then
echo -e "Docker service ---> [${GREEN}RUNNING${NOCOLOR}]"
else
echo -e "Docker service ---> [${RED}STOPPED${NOCOLOR}]"
echo
echo "Tentativo di ripristino del servizio Docker"
echo "Il sistema verrà riavviato in 15 secondi"
sleep 15
sudo reboot
exit 1
fi
#END TEST DOCKER STATE
#BEGIN TEST CONTAINER RUNNING STATE
container_name="my-container-name"
sentinel=0
if [ "$( docker container inspect -f '{{.State.Status}}' $container_name )" == "running" ];
then
echo -e "$container_name ---> [${GREEN}RUNNING${NOCOLOR}]"
elif [ "$( docker container inspect -f '{{.State.Status}}' $container_name )" == "restarting" ];
then
echo -e "$container_name ---> [${RED}RESTARTING${NOCOLOR}]"
elif [ "$( docker container inspect -f '{{.State.Status}}' $container_name )" == "dead" ];
then
echo -e "$container_name ---> [${RED}DEAD${NOCOLOR}]"
elif [ "$( docker container inspect -f '{{.State.Status}}' $container_name )" == "exited" ];
then
echo -e "$container_name ---> [${RED}EXITED${NOCOLOR}]"
else
echo -e "$container_name ---> [${RED}SERIOUSLY DAMAGED${NOCOLOR}]"
fi
#END TEST CONTAINER RUNNING STATE