Un container Docker qui crash ou redémarre en boucle est frustrant à debugger. Le container disparaît avant que vous puissiez voir ce qui se passe. Voici comment investiguer.
Symptômes
- Container qui redémarre en boucle (restart loop)
- Status "Exited" avec un code d'erreur
- Application inaccessible après déploiement
- Logs qui s'arrêtent brusquement
Causes Fréquentes
- Erreur dans le code : Une exception non gérée au démarrage tue le processus principal.
- Configuration manquante : Variable d'environnement ou fichier de config absent.
- Dépendance indisponible : La BDD ou un service externe n'est pas prêt au démarrage.
Étapes de Diagnostic
- Vérifiez les logs avec docker logs [container]
- Inspectez l'état avec docker inspect [container]
- Examinez le code de sortie (exit code)
- Lancez en mode interactif pour debugger
Automatiser avec MoniTao
MoniTao détecte quand vos containers ne fonctionnent pas :
- Surveillance HTTP de l'application containerisée
- Alertes immédiates si le service ne répond plus
- Heartbeat pour les containers de jobs
Bonnes Pratiques
- Utilisez HEALTHCHECK dans votre Dockerfile
- Implémentez un wait-for-it pour les dépendances
- Configurez des restart policies appropriées
- Centralisez les logs (ELK, CloudWatch)
Questions Fréquentes
Que signifie exit code 137 ?
Le container a été tué par OOM Killer (manque de mémoire).
Exit code 1 vs exit code 0 ?
0 = succès, 1 = erreur générale, 137 = OOM, 143 = SIGTERM.
Comment debugger sans que le container disparaisse ?
Changez le CMD pour un sleep infinity et exec dedans.
MoniTao surveille-t-il Docker directement ?
Non, mais il surveille les services exposés par vos containers.
Prêt à dormir sur vos deux oreilles ?
Commencez gratuitement, sans carte bancaire.