Considérer:
docker run -it centos /bin/bash
J'ai appuyé sur Ctrl+ Dpour le quitter.
Je veux continuer à exécuter ce conteneur, mais j'ai constaté que je ne peux pas.
La seule méthode est
docker commit `docker ps -q -l` my_image
docker run -it my_image /bin/bash
Ai-je raison? Existe-t-il une meilleure méthode? (J'utilise docker 0.8.0.)
Réponses:
Vous pouvez redémarrer un conteneur existant après sa fermeture et vos modifications sont toujours là.
la source
docker start `docker ps -q -l` && docker attach `docker ps -q -l`
docker start -i $(docker ps -q -l)
. ;-) La dénomination peut aider à mieux contrôler quel conteneur est sélectionné.-l
obtenez le dernier, ok ...`docker ps -q -l`
bit est une extension. Il sera remplacé par l'id du dernier conteneur docker (-l) créé. -q supprime simplement les autres informations (chevets l'id) généralement produites par`docker ps`
. ---- note: Le backtick n'est pas un signe de citation, il a une signification très spéciale. Tout ce que vous tapez entre les retours est évalué (exécuté) par le shell avant la commande principale - unix.stackexchange.com/questions/27428/…Created...
partir duquel il ne peut pas être démarré avec adocker start ...
. Il peut cependant être redémarré à l'aide dedocker restart ...
-l
obtient uniquement le "dernier" docker. Si vous êtes comme moi etdocker ps -a
montrez plus d'une chose dont vous avez besoin pour démarrer, vous pouvez redémarrer "tous" (-a) en changeant la commande ci-dessus endocker start `docker ps -q -a`
.-q
le rend juste "silencieux" (pas la journalisation de sortie).Explication:
docker start
démarrer un conteneur (nécessite un nom ou un ID)-a
attacher au conteneur en-i
mode interactifdocker ps
Liste des conteneurs-q
liste uniquement les ID de conteneur-l
liste uniquement le dernier conteneur crééla source
Utilisation:
Cela démarrera tous les conteneurs qui sont à l'état de sortie.
Cela se connectera au conteneur particulier.
la source
docker exec -it <container id> /bin/bash
(ou simplement bash).Si vous voulez le faire en plusieurs commandes faciles à mémoriser:
docker ps -a
docker start -i <name/id>
Le
-i
drapeau indique au docker de se connecter à la stdin du conteneur.Si le conteneur n'a pas été démarré avec un shell interactif auquel se connecter, vous devez le faire pour exécuter un shell:
Le
/bin/sh
shell est généralement disponible avec des images alpines.la source
Error response from daemon: Container <id> is not running
Si vous souhaitez continuer exactement un conteneur Docker avec un nom connu:
la source
docker start <name>
où <nom> est le nom de votre conteneur. Au moins avec docker v19.03.8Suivez ces étapes:
Exécutez la commande ci-dessous pour voir que tous les services de conteneur s'exécutent et s'arrêtent. L'option
-a
est donnée pour voir que le conteneur s'arrête égalementEnsuite, démarrez le conteneur Docker par
container_id
ou par nom de balise de conteneurDites à partir de l'image ci-dessus, ID de conteneur 4b161b302337
Donc, la commande à exécuter est
On peut vérifier si le conteneur fonctionne avec
la source
Si vous avez un conteneur nommé, vous pouvez le démarrer en exécutant
où nom_conteneur est le nom du conteneur qui doit être indiqué au moment de la création du conteneur. Vous pouvez remplacer
container_name
par l'ID de conteneur au cas où le conteneur ne serait pas nommé. L'ID du conteneur peut être trouvé en exécutant:la source
Ces commandes fonctionneront pour n'importe quel conteneur (pas seulement les derniers sortants). Cette méthode fonctionnera même après le redémarrage de votre système. Pour ce faire, ces commandes utiliseront "id du conteneur".
Pas:
Répertoriez tous les dockers à l'aide de cette commande et notez l'ID du conteneur que vous souhaitez redémarrer:
docker ps -a
Démarrez votre conteneur en utilisant l'identifiant du conteneur:
docker start <container_id>
Attachez et exécutez votre conteneur:
docker attach <container_id>
REMARQUE: fonctionne sur Linux
la source
de nom
ou par Id
cela redémarre le conteneur arrêté, utilisez -i pour attacher le STDIN du conteneur ou au lieu de -i vous pouvez attacher à la session de conteneur (si vous exécutez avec -it)
la source
Cela démarrera tous les conteneurs qui sont à l'état «Quitté»
la source