web-dev-qa-db-fra.com

Docker: le conteneur continue à redémarrer à nouveau

Aujourd'hui, j'ai déployé une instance de MediaWiki à l'aide de l'image du dockeur appcontainers/mediawiki, et j'ai maintenant un nouveau problème pour lequel je ne trouve aucun indice.

docker attach mediawiki_web_1

qui répond Terminated sur ma configuration pour une raison que j'ignore, essayant également:

docker exec -it mediawiki_web_1 bash

Je reçois quelque chose près d'un message d'erreur:

Error response from daemon: Container 81c07e4a69519c785b12ce4512a8ec76a10231ecfb30522e714b0ae53a0c9c68 is restarting, wait until the container is running

Et il y a mon nouveau problème, car ce conteneur ne cesse jamais de redémarrer. Je peux voir cela en utilisant docker ps -a qui retourne toujours un STATUS de Restarting (127) x seconds ago.

Le problème, c’est que je suis capable d’arrêter le conteneur (que j’ai testé), mais le relancer semble ramener le conteneur dans sa boucle de redémarrage.

Une idée de ce que pourrait être le problème ici? Tout fonctionnait correctement jusqu'à ce que j'essaye d'y attacher ...

Je suis triste :-(

41
Balessan

La commande docker logs vous montrera le résultat généré par un conteneur lorsque vous ne l'exécutez pas de manière interactive. Cela est susceptible d'inclure le message d'erreur. 

docker logs --tail 50 --follow --timestamps mediawiki_web_1

Vous pouvez également exécuter un nouveau conteneur au premier plan avec docker run -ti <your_wiki_image> pour voir ce que cela fait. Vous devrez peut-être mapper une partie de la configuration de votre docker-compose yml sur la commande docker

Je suppose que l’attachement au processus wiki du média a provoqué un crash qui a corrompu quelque chose dans vos données. 

63
Matt

Lorsque docker kill CONTAINER_ID ne fonctionne pas et que docker stop -t 1 CONTAINER_ID ne fonctionne pas non plus, vous pouvez essayer de supprimer le conteneur:

docker container rm CONTAINER_ID

J'ai eu un problème similaire aujourd'hui où les conteneurs étaient dans une boucle de redémarrage continu.

Le problème dans mon cas était lié au fait que je sois un pauvre ingénieur. 

Quoi qu'il en soit, j'ai résolu le problème en supprimant le conteneur, en corrigeant mon code, puis en reconstruisant et en exécutant le conteneur.

J'espère que cela aidera à l'avenir tous ceux qui resteront coincés dans cette affaire

13
Giannis Katsini

D'après mon expérience personnelle, il semble y avoir un problème dans votre conteneur de menu fixe qui ne lui permet pas de redémarrer. Ainsi, un processus dans le conteneur provoque le blocage du redémarrage ou un processus provoque le blocage du conteneur au démarrage.

Lorsque vous démarrez le conteneur, assurez-vous de le lancer séparément "-d" si vous souhaitez le joindre. (ex. "docker run -d mediawiki_web_1")

3
void10k

tl; dr Il redémarre avec un code d'état de 127, ce qui signifie qu'un fichier/une bibliothèque est manquant dans votre conteneur. Commencer un nouveau conteneur pourrait bien le réparer.

Explication: 

En ce qui concerne ma compréhension de Docker, voici ce qui se passe: 

  1. Le conteneur tente de démarrer. Ce faisant, il tente d’accéder à un fichier/une bibliothèque qui n’existe pas. 
  2. Il se termine avec un code d'état de 127, expliqué dans cette réponse
  3. Normalement, c'est à cet endroit que le conteneur devrait être complètement sorti, mais il redémarre. 
  4. Il redémarre car la stratégie restart doit avoir été définie sur autre chose que no (valeur par défaut), (à l'aide du drapeau de ligne de commande --restart ou de la touche docker-compose.yml clé restart) au démarrage le conteneur.

Solution: Quelque chose aurait pu corrompre votre conteneur. Commencer un nouveau contenant devrait idéalement faire l'affaire.

3
meshde

Dans mon cas, le conteneur nginx continuait à redémarrer, j’ai vérifié les journaux du conteneur nginx et suis parvenu à connaître les fichiers .crt et .key d’un domaine non requis. Nginx. Voilà, nginx fonctionne bien sans redémarrer.

0
Lakshmi

Cela pourrait également être le cas si vous avez créé un service systemd comportant:

[Service]
Restart=always
ExecStart=/usr/bin/docker container start -a my_container
ExecStop=/usr/bin/docker container stop -t 2 my_container
0
surfer190

J'avais oublié Minikube en arrière-plan et c'est ce qui les redémarre toujours

0
nuicca