97 votes

docker essaim comment trouver pourquoi le service ne peut pas démarrer

J'ai souvent des problèmes parce que un service que je n'déployer sur docker essaim avec plusieurs nœuds ne démarre pas et il n'y a pas de fichiers journaux générés que je peux regarder avec docker service logs {serviceName}

Il y a beaucoup de raisons possibles pour un service de ne pas commencer comme

  • Impossible de télécharger une image à partir du registre
  • Des contraintes qui ne peuvent pas être remplies

J'ai du mal à trouver pourquoi un conteneur ne peut pas démarrer. J'ai trouvé la commande docker service ps {serviceName} qui Liste les tâches d'un ou de plusieurs des services et un court message d'erreur (si il y a une erreur). Cependant, lorsque j'essaie d'inspecter la tâche avec docker service logs {taskId} (ce qui devrait afficher les journaux d'une tâche), je reçois Error response from daemon: task 3lkgo8t2sn7k not found.

Quelqu'un peut-il m'aider à obtenir un message d'erreur complet pourquoi un service ne démarre pas?

223voto

herm Points 3022

J'en ai trouvé une solution pratique à ce problème.

docker service ps --no-trunc {serviceName}

qui afficher les erreurs avec le téléchargement d'images, de montage de volumes nfs, entre autres.

---------------------- Mise à JOUR

Pas toutes les erreurs peuvent être trouvés dans la manière décrite ci-dessus. Un autre outil utile est en regardant le démon docker journaux qui peut être fait de la follwing façon qu'expliqué sur stackoverflow:

journalctl -u docker.service | tail -n 50 

Cela dépend de votre système d'exploitation. Voici les quelques endroits, avec des commandes pour quelques Systèmes d'Exploitation:

  • Ubuntu (ancien aide de upstart ) - /var/log/upstart/docker.log
  • Ubuntu (nouveau en utilisant systemd ) - journalctl -u docker.service
  • Boot2Docker - /var/log/docker.log
  • Debian GNU/Linux - /var/log/daemon.log
  • CentOS - /var/log/daemon.log | grep docker
  • CoreOS - journalctl -u docker.service
  • Fedora - journalctl -u docker.service
  • Red Hat Enterprise Linux Server - /var/log/messages | grep docker
  • OpenSuSE - journalctl -u docker.service
  • OSX - ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/log/d‌​ocker.log
  • Windows - Get-EventLog -LogName Application -Source Docker -After (Get-Date).AddMinutes(-5) | Sort-Object Time, comme mentionné ici.

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