web-dev-qa-db-fra.com

Comment voir les journaux d'un conteneur Docker

J'ai un code simple pour lequel j'ai créé un conteneur Docker et l'état indique qu'il fonctionne correctement. Dans le code, j'ai utilisé certaines commandes print() pour imprimer les données. Je voulais voir cette sortie de commande d'impression.

Pour cela, j'ai vu des journaux de docker. Mais cela ne semble pas fonctionner car il ne montre aucun journal. Comment vérifier les journaux?

 $ Sudo docker ps
CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS                                            NAMES
a3b3fd261b94        myfirstdocker                     "python3 ./my_script…"   22 minutes ago      Up 22 minutes                                                        elegant_darwin

 $ Sudo docker logs a3b3fd261b94
 <shows nothing>
6
S Andrew

Le premier point que vous devez imprimer vos journaux sur stdout.

Pour vérifier les journaux du menu fixe, utilisez simplement la commande suivante:

docker logs --help

Usage:  docker logs [OPTIONS] CONTAINER

Fetch the logs of a container

Options:
      --details        Show extra details provided to logs
  -f, --follow         Follow log output
      --help           Print usage
      --since string   Show logs since timestamp
      --tail string    Number of lines to show from the end of the logs (default "all")
  -t, --timestamps     Show timestamps

Quelques exemples:

docker logs --since=1h <container_id>
8
Nickolay

S'il n'y a pas tellement de sortie supposée (par exemple, un script essaie simplement d'imprimer quelques octets), je soupçonne que python le met en mémoire tampon.

Essayez d'ajouter plus de données à la sortie pour vous assurer que le tampon est vidé et utilisez également PYTHONUNBUFFERED = 1 (bien que python3 puisse toujours faire de la mise en tampon malgré ce paramètre).

0
Hleb Rubanau