191 votes

Docker : Le conteneur n'arrête pas de redémarrer encore et encore

J'ai déployé aujourd'hui une instance de MediaWiki en utilisant l'image docker appcontainers/mediawiki, et j'ai maintenant un nouveau problème pour lequel je ne trouve aucun indice. Après avoir essayé de s'attacher au conteneur frontal mediawiki en utilisant :

docker attach mediawiki_web_1

qui répond à Terminated sur ma configuration pour une raison que j'ignore, j'essaie aussi :

docker exec -it mediawiki_web_1 bash

J'obtiens quelque chose qui ressemble à un message d'erreur :

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

Et voilà mon nouveau problème, car ce conteneur ne cesse de redémarrer. Je peux voir qu'en utilisant docker ps -a qui renvoie toujours un STATUS de Restarting (127) x seconds ago .

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

Une idée de ce qui pourrait être le problème ici ? L'ensemble fonctionnait correctement jusqu'à ce que j'essaie de l'attacher...

Je suis triste :-(

0 votes

J'ai réussi en supprimant complètement mon cache Docker, en utilisant forums.docker.com/t/how-to-delete-cache/5753/2 (J'ai également ajouté la balise -f à rmi). J'ai ensuite reconstruit mes conteneurs et ils ont fonctionné.

0 votes

Pour moi, il ne suffisait pas de supprimer les conteneurs et les images (comme décrit dans le lien de @alberto56), je devais également supprimer le volume associé. Une fois que j'ai fait cela, j'étais de retour dans les affaires.

6voto

iam10k Points 316

D'après mon expérience personnelle, il semble qu'il y ait un problème dans votre conteneur docker qui ne lui permet pas de redémarrer. Ainsi, un processus à l'intérieur du conteneur bloque le redémarrage ou un autre processus fait planter le conteneur au démarrage.

Lorsque vous démarrez le conteneur, assurez-vous que vous le démarrez détaché "-d" si vous avez l'intention de vous y attacher. (ex. "docker run -d mediawiki_web_1")

0 votes

Je suppose que l'exécution du conteneur en utilisant docker-compose le détache de toute façon, non ? Ou l'argument -d est manquant dans mon fichier de configuration. Je vais vérifier cela.

2voto

Lakshmi Points 82

Dans mon cas, le conteneur nginx n'arrêtait pas de redémarrer, j'ai vérifié les logs du conteneur nginx et j'ai découvert que les fichiers .crt et .key d'un domaine non requis présentaient des erreurs, j'ai donc supprimé les fichiers .conf, .crt et .key respectifs, puis redémarré nginx. C'est tout, nginx fonctionne bien sans redémarrage.

1voto

nuicca Points 261

J'avais oublié que Minikube tournait en arrière-plan et c'est ce qui les a toujours fait redémarrer.

1voto

Nagendran Points 142

Vérifiez d'abord dans les journaux pourquoi le conteneur a échoué. Parce que votre politique de redémarrage peut ramener votre conteneur à l'état de fonctionnement. Il est préférable de résoudre le problème. Ensuite, vous pourrez probablement construire une nouvelle image avec/sans correction. Ensuite, exécutez la commande suivante

docker system prune

https://forums.docker.com/t/docker-registry-in-restarting-1-status-forever/12717/3

0 votes

Vous avez tout à fait raison de dire qu'il vaut mieux résoudre le problème que les autres réponses données ici. Ce qui serait utile, c'est de montrer comment on peut trouver les journaux puisque le conteneur ne cesse de redémarrer, donc les journaux ont disparu. La simple suppression du paramètre de redémarrage n'aidera pas non plus, car les journaux seront toujours supprimés lorsque le conteneur échouera. Si vous mettez à jour ce message avec cette information, je pense que vous obtiendrez plus de votes positifs.

1voto

Massaynus Points 65

J'ai eu le même problème pendant un certain temps après avoir déployé le code sur le serveur de production après une longue période d'exécution en développement. Le problème était que dans mon docker-compose.yml Je n'ai pas spécifié de balise pour l'image mongo, par défaut, il récupère la dernière version, et comme je voulais conserver le chemin des données, il y avait un décalage entre les versions de mongo. sur dev, il s'agissait de la version 4.4.3 et dans prod, il s'agissait de la dernière version (je suppose 5.x) la solution pour moi a été de spécifier l'image en tant que mongo:4.4.3 au lieu de simplement mongo

Je ne voulais pas prendre le chemin de la mise à jour de la base de données.

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