web-dev-qa-db-fra.com

Comment exécuter un conteneur arrêté existant et entrer dans le bash?

Je suis un débutant à Docker et je sais que pour exécuter un conteneur, je peux utiliser la commande suivante:

docker run -it --name custom-container-name --hostname custom-hostname image-name bash

La commande précédente crée un conteneur nommé custom-container-name dont le nom d'hôte est custom-hostname, et il utilise l'image image-name. Je sais que le -it flag me donne accès à bash. (S'il vous plait corrigez moi si je me trompe)

Maintenant, j'ai arrêté ce conteneur, mais je veux l'utiliser à nouveau, donc quelle est la commande que je dois utiliser pour rouvrir ce conteneur avec son bash, comme lorsque j'exécute le docker run ... commande lors de sa première création.

8
lmiguelvargasf

Je pense que le problème que vous rencontrez est que la commande que vous fournissez se termine immédiatement et que le conteneur continue de fonctionner, il a besoin d'une commande qui ne se fermera pas. Une façon que j'ai trouvée pour maintenir les conteneurs en cours d'exécution est d'utiliser l'option -d comme ceci:

docker run -dt --name custom-container-name --hostname custom-hostname image-name

Cela devrait le faire fonctionner en tant que démon en arrière-plan. Ensuite, vous pouvez ouvrir un Shell dans le conteneur avec:

docker exec -it custom-container-name /bin/bash

Si l'utilisateur par défaut de l'image est root (ou non défini), cela devrait vous fournir un shell racine dans le conteneur.

Vous pouvez utiliser docker inspect pour voir les détails de l'image pour voir ce que sont la commande et l'utilisateur par défaut:

docker inspect image-name | less

En outre, si votre conteneur existe et que son état est "Quitté", vous pouvez démarrer ce conteneur, puis utiliser docker exec comme suit:

docker start custom-container-name
docker exec -it custom-container-name /bin/bash
10
Andrew