J'ai un conteneur Docker fonctionnant dans un hôte de 1G de RAM (il existe également d'autres conteneurs fonctionnant dans le même hôte). L'application de ce conteneur Docker décodera certaines images, ce qui peut consommer beaucoup de mémoire.
De temps en temps, ce conteneur sortira. 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 première. Alors, y a-t-il un moyen de savoir ce qui s'est passé pour la mort de ce conteneur?
docker
containers
exit
Li Bin
la source
la source
docker logs <container-id>
.Réponses:
D'autres ont mentionné
docker logs $container_id
pour afficher la sortie de l'application. Ce serait toujours ma première chose à vérifier.Ensuite, vous pouvez exécuter a
docker inspect $container_id
pour afficher les détails de l'état, par exemple:La ligne importante est "OOMKilled" qui sera vraie si vous dépassez les limites de mémoire du conteneur et Docker tue votre application. Vous pouvez également rechercher le code de sortie pour voir s'il identifie une cause de sortie par votre application.
Notez que cela indique uniquement si docker lui-même tue votre processus et nécessite que vous ayez défini une limite de mémoire sur votre conteneur. En dehors de docker, le noyau Linux peut lol votre processus si l'hôte lui-même manque de mémoire. Linux écrit souvent dans un journal dans / var / log lorsque cela se produit. Avec Docker Desktop sur Windows et Mac, vous pouvez ajuster la mémoire allouée à la machine virtuelle Linux intégrée dans les paramètres du docker.
la source
Vous pouvez savoir si le processus à l'intérieur du conteneur a été OOMkilled en lisant les journaux. Les OOMkills sont lancés par le noyau, donc à chaque fois que cela se produit, il y a un tas de lignes
/var/log/kern.log
, par exemple:la source
Bien que la réponse acceptée soit la meilleure option, il peut parfois être utile d'inspecter également depuis l'hôte le contenu du journal (sous Linux).
Vous pouvez le faire en tapant:
ou le suivre
ou raccorder la sortie à moins si elle est trop longue pour votre tampon de terminal
la source