Comment voulez-vous commencer un Docker-ubuntu conteneur en bash?
Les réponses de cette question ne fonctionnent pas.
Le conteneur docker toujours ferme avant que je puisse attach
ou de ne pas accepter les -t
drapeau. Je pourrais dresser une liste de toutes les commandes que j'ai essayé, mais c'est une combinaison de start
exec
attach
avec divers -it
drapeaux et /bin/bash
.
Comment puis-je commencer un conteneur existant en bash? Pourquoi est-ce si difficile? Est-ce une "mauvaise" utilisation de Docker?
MODIFICATIONS:
J'ai créé le récipient avec docker run ubuntu
. Les informations sur le conteneur: 60b93bda690f ubuntu "/bin/bash" About an hour ago Exited (0) 50 minutes ago ecstatic_euclid
Quel a été le conteneur de la commande d'origine?
Je l'utilise généralement:
Quelle est l'image / Dockerfile? Plusieurs raisons possibles, impossible de savoir sans que l'un / deux de ces morceaux de l'info.
Je ne peux pas
Ainsi, l'édition m'indique que le conteneur s'exécute, ne fait rien et les sorties avec succès. Vous dites que le conteneur ne pas accepter les
Je l'utilise généralement:
docker exec -i -t container-name /bin/bash
. Se pourrait-il que votre conteneur n'a pas /bin/bash
?Quelle est l'image / Dockerfile? Plusieurs raisons possibles, impossible de savoir sans que l'un / deux de ces morceaux de l'info.
Je ne peux pas
exec
sans le conteneur a commencé. @jwodder @johnharris85 j'ai ajouté cette information à ma question. Merci!Ainsi, l'édition m'indique que le conteneur s'exécute, ne fait rien et les sorties avec succès. Vous dites que le conteneur ne pas accepter les
-t
drapeau, et que vous avez essayé diverses combinaisons de -it
etc... j'aurais pensé (si vous utilisez le ubuntu
image) que docker run -it ubuntu
devrait fonctionner très bien (ce qu'il fait sur mon système).OriginalL'auteur Andrew | 2017-04-14
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, le conteneur n'est pas une machine virtuelle, un conteneur est un environnement d'isolation pour un fonctionnement d'un processus, la durée de cercle de conteneur est lié au processus en cours d'exécution à l'intérieur, lorsque le processus se termine, le container permet également de quitter, et l'isolement de l'environnement est parti. Le sens de "rattacher à conteneur" ou "entrer un conteneur" signifie, en réalité, vous allez à l'intérieur de l'environnement d'isolation de la processus en cours d'exécution, donc si votre processus a été annulé, votre conteneur a également été abandonnées, donc il n'y a pas de conteneur à
attach
ouenter
. Donc la commande dedocker attach
,docker exec
sont la cible à de course conteneur.Le processus qui sera lancé lorsque vous
docker run
est configuré dansDockerfile
et intégré dans le panneau de l'image. Prendre l'imageubuntu
à titre d'exemple,si vous exécutez
docker inspect ubuntu
, vous trouverez les éléments suivants configs dans la sortie:ce qui signifie que le processus a commencé lorsque vous exécutez
docker run ubuntu
est/bin/bash
, mais vous n'êtes pas dans un mode interactif, et de ne pas allouer un tty, de sorte que le processus est sorti immédiatement et le récipient fermé. C'est pourquoi vous n'avez aucun moyen d'entrer dans le récipient de nouveau.Pour démarrer un conteneur et entrez
bash
, juste essayer:Ensuite vous serez amené dans le conteneur de shell. Si vous ouvrez un autre terminal et
docker ps
, vous trouverez le conteneur est en cours d'exécution et vous pouvezdocker attach
oudocker exec -it <container_id> bash
de la saisir à nouveau.Vous pouvez aussi consulter ce lien pour plus d'info.
OriginalL'auteur shizhz
Ici est très simple Dockerfile avec des instructions comme commentaires ... faire un tour et voir si vous avez alors un travail conteneur, vous pouvez exec connexion à
Un conteneur de sortie normalement quand il n'a pas de travail à faire ... si vous ne lui donnez pas de travail, il va quitter immédiatement après le lancement pour cette raison ... en général la dernière commande de votre Dockerfile est l'exécution de certains saveur d'un serveur qui reste en vie en raison d'un événement interne de la boucle et donc maintient en vie de son conteneur renfermant ... bref de ce que vous pouvez parler d'un serveur de fichier exécutable comme le dernier paramètre de votre appel à
OriginalL'auteur Scott Stensland