154 votes

Comment connaître la raison pour laquelle un conteneur docker se ferme?

J'ai un conteneur Docker qui s'exécute dans un hôte de 1G de RAM (il existe également d'autres conteneurs qui s'exécutent dans le même hôte). L'application de ce conteneur Docker décodera certaines images, qui risquent de consommer beaucoup de mémoire.

De temps en temps, ce conteneur va sortir. Je doute que cela soit dû à un manque de mémoire, mais pas très sûr. J'ai besoin d'une méthode pour trouver la cause. Alors, y a-t-il un moyen de savoir ce qui est arrivé à la mort de ce conteneur?

180voto

BMitch Points 3744

D'autres ont mentionné docker logs $container_id pour afficher le résultat de l'application. Ce serait toujours ma première chose à vérifier.

Ensuite, vous pouvez exécuter un docker inspect $container_id pour afficher des détails sur l'état, par exemple:

     "State": {
        "Status": "exited",
        "Running": false,
        "Paused": false,
        "Restarting": false,
        "OOMKilled": false,
        "Dead": false,
        "Pid": 0,
        "ExitCode": 2,
        "Error": "",
        "StartedAt": "2016-06-28T21:26:53.477229071Z",
        "FinishedAt": "2016-06-28T21:26:53.478066987Z"
    },
 

La ligne importante là-bas est "OOMKilled", ce qui sera vrai si vous dépassez les limites de mémoire du conteneur et si Docker tue votre application. Vous pouvez également consulter le code de sortie pour voir s'il identifie une cause de sortie par votre application.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X