0
votes

Docker Conteneur Sort dès que je commence

Lorsque je cours ou démarrons un conteneur Docker, il ne restera pas en marche. Docker Start retournera simplement le nom de tout conteneur que j'ai donné, mais ne fera rien. Docker Run (EX $ Docker Exécuter -P 8080: 80 --Name Bonjour-Hello-World) le créera mais il quittera immédiatement.

Si j'exécute Docker PS après l'une d'entre elles, il ne montrera rien de répertorié comme étant actuellement en cours d'exécution. Si je courais Docker PS -a, il montrera tous mes conteneurs et montrera celui que je viens de tenter de courir d'avoir disparu il y a quelques secondes.

est-ce courant et comment puis-je récupérer mes conteneurs? J'essaie d'apprendre à utiliser Docker et cela a été l'une des pires expériences. Merci pour toute aide ou suggestion


2 commentaires

Vérifiez les journaux du conteneur s'il existe une erreur dans le démarrage du processus dans le conteneur. ( Docker Logs ... ).


est-ce courant et comment puis-je obtenir mes récipients pour rester en cours d'exécution? Votre Docker exécute un processus de course longue, comme un serveur Web, une base de données ou juste un script comme le monde Hello World? Vérifiez les tutoriels auto-guidés docs.docker.com/get-starté / ressources /


5 Réponses :


1
votes

Dans votre commande, vous spécifiez le drapeau -d (AKA détach), ce qui signifie exécuter le conteneur dans l'arrière-plan et l'identifiant du conteneur d'impression (de Docker Docs ). Voir plus de discussions à ce sujet ici: Le conteneur Docker s'arrêtera automatiquement après " Docker Run -d "

Docker Run -P 8080: 80 --Name Hello -D Bonjour-World

Si vous l'exécutez sans le drapeau -d , il doit fonctionner au premier plan et envoyer une sortie à votre terminal

Docker Run -P 8080: 80 --Name Bonjour Hello-World

Vous ne le voyez pas en cours d'exécution dans Docker PS -A car ce conteneur exécute simplement le script Hello-World et sort. Si le conteneur commence un processus de course à long terme, vous pourrez le trouver dans Docker PS -A . Pour vérifier cela, vous pouvez essayer d'exécuter les conteneurs de démonstration Nginx (par exemple, NGinx- Bonjour ) qui servent des pages «Hello World» / Démo.


0 commentaires

0
votes

est-ce courant et comment puis-je obtenir mes conteneurs pour rester en cours d'exécution? P>

Que se passe-t-il lorsque vous démarrez un conteneur Docker?
Par défaut, il exécute la commande / Le point d'entrée spécifié dans l'image DockerFile . Généralement, cette commande ou l'entréePoint est un script ou un programme situé dans l'image.
Lorsque ce script / programme sort, le conteneur sort également. C'est tout. P>

Pour garder un conteneur vivant, le script / programme doit rester en marche.
Vous démarrez un conteneur d'image Hello, un conteneur "Bonjour" dit "Bonjour" et sort. Cela peut être un script aussi simple que: p> xxx pré>

de sorte que cela devrait terminer et quitter le conteneur. Exécutez une base de données ou un serveur Web et vous verrez un comportement différent. Le script / programme continue de fonctionner ... pendant que vous n'arrêtez pas cela. Donc, le conteneur reste également en marche pendant que vous n'arrêtez pas cela. P>

Pour expérimenter, vous pouvez exécuter votre Bonjour-world code> conteneur avec une commande sans fin: p>

docker run -p 8080:80 --name hello -d hello-world --entrypoint tail -f /dev/null


0 commentaires

0
votes

Pour savoir ce qui ne va pas avec votre utilisation de votre conteneur (connecteurs Docker (nom de votre conteneur)).

alors vous pouvez trier ce qui s'est mal passé avec votre conteneur


0 commentaires

1
votes

Les conteneurs Docker sont généralement utilisés pour exécuter des applications / des processus dans un environnement isolé.

Lorsque vous exécutez l'image Hello-World, il crée un conteneur qui n'a que le but d'imprimer le nom à l'aide de la sortie standard. C'est le seul processus qui a couru et le conteneur a été fait avec son travail. C'est pourquoi vous ne voyez rien lorsque vous avez terminé Docker PS .

Pour conserver un conteneur en marche, vous devez avoir un processus à l'intérieur de ce conteneur qui fonctionnera (par exemple: un serveur, une base de données, une application, etc.)

Essayez de créer une image MySQL de formulaire de conteneur, puis vérifiez le conteneur d'exécution.


0 commentaires

0
votes

Un conteneur de docker sort lorsque son processus principal se termine. Le processus principal Code> Hello-World imprime simplement du texte et des sorties, des sorties de conteneur également.

Vous pouvez exécuter cette commande directement pour voir le texte: P>

docker run --name nginx-demo -p 8080:80 -d nginx


0 commentaires