[Tuto] Redémarrer automatiquement un conteneur Docker avec un statut unhealthy
Informations : Je n'utilise plus autoheal depuis un moment maintenant, ce tutoriel n'est donc plus maintenu, vous pouvez vous tourner vers deunhealthy qui fait la même chose. [Tuto] Redémarrer automatiquement un conteneur Docker avec un statut unhealthy
Bonjour,
Nous allons voir comment utiliser docker-autoheal afin de surveiller nos conteneurs, et les redémarrer automatiquement en cas de besoin.
Dans mon cas, j'ai mi ceci en place pour un conteneur VPN, qui a parfois tendance a déconnecter. Avec docker-autoheal, si mon conteneur VPN passe en unhealthy, alors, il va automatiquement lancer un reboot du conteneur.
Sommaire :
1/ Configuration du conteneur à surveiller
____ a/ Conteneur crée via Portainer
____ b/ Conteneur créé en docker-compose
2/ Création du conteneur healcheck
____ a/ Via docker run :
____ b/ Via docker-compose :
C'est parti !

1/ Configuration du conteneur à surveiller
Sur votre conteneur à surveiller, qui devra bien sur être déja equipé d'un healcheck, vous allez devoir rajouter le label "autoheal=true"
a/ Conteneur crée via Portainer
Si votre conteneur est créé depuis Portainer, alors il suffit de l'editer :

Puis dans l'onget Labels, de rajouter le label comme ceci :

Puis de re-déployer le conteneur :

b/ Conteneur créé en docker-compose
Si votre conteneur est créé depuis docker-compose, il vous suffit d'éditer votre fichier .yml pour y rajouter le label, comme ceci :
Code:
labels:
- autoheal=true

2/ Création du conteneur healcheck
a/ Via docker run :
Connecter vous en SSH, et exécuter cette commande pour créer le conteneur :
Code:
sudo docker run -d \
--name autoheal \
--restart=always \
-e AUTOHEAL_CONTAINER_LABEL=autoheal \
-v /var/run/docker.sock:/var/run/docker.sock \
willfarrell/autoheal
b/ Via docker-compose :
Code:
version: '3.3'
services:
autoheal:
container_name: autoheal
restart: always
environment:
- AUTOHEAL_CONTAINER_LABEL=autoheal
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /etc/localtime:/etc/localtime:ro
image: willfarrell/autoheal
network_mode: none
A partir de maintenant, autoheal va surveiller tous vos conteneurs auquel vous avez rajouté le label "autoheal=true" et les redémarrer au besoin.
2021-08-19 - Correction de AUTOHEAL_CONTAINER_LABEL
Dernière édition: