web-dev-qa-db-fra.com

Comment conserver le conteneur Docker Alpine après avoir utilisé la «sortie»?

Comme par exemple si j'utilise la commande docker run -it Alpine /bin/sh il démarre un terminal après lequel je peux installer des packages et tout. Maintenant, lorsque j'utilise la commande exit, cela revient au terminal. (principal)

Alors, comment puis-je accéder à nouveau au même conteneur? Lorsque j'exécute à nouveau cette commande, j'obtiens une nouvelle Alpine.

Veuillez aider

9
shubham-kamath

Le conteneur vit tant que le processus de commande d'exécution spécifié est toujours en cours d'exécution. Lorsque vous spécifiez d'exécuter /bin/sh, une fois que vous aurez quitté, le processus sh mourra, tout comme votre conteneur.

Si vous voulez garder votre conteneur en cours d'exécution, vous devez garder le processus à l'intérieur en cours d'exécution. Pour votre cas (je ne suis pas sûr de ce que vous voulez obtenir, je suppose que vous ne faites que tester), ce qui suit le fera fonctionner

docker run -d --name Alpine alpine tail -f /dev/null

Ensuite, vous pouvez sh dans le conteneur en utilisant

docker exec -it Alpine sh  
14
yamenk

Tu devrais utiliser docker start, qui vous permet de démarrer un conteneur arrêté. Si vous n'avez pas nommé votre conteneur, vous devrez obtenir son nom/id à l'aide de docker ps.

Par exemple,

$docker ps
CONTAINER ID        IMAGE                        COMMAND
4c01db0b339c        Alpine                       bash    

$docker start -i -a 4c01db0b339c   
2
logix

Tirez une image

docker image pull Alpine

Voir que l'image est là

docker image ls   OR  just docker images

voir ce qu'il y a à l'intérieur des Alpes

docker run Alpine ls -al

Maintenant, votre question est de savoir comment rester avec le Shell

docker container run -it Alpine /bin/sh

Vous êtes dans la ligne de commande du script Shell. Certaines distributions peuvent avoir bash Shell.

 docker exec -it 5f4 sh
 / # (<-- you can run linux command here!)

À ce stade, vous pouvez utiliser la ligne de commande d'Alpine et faire

ls -al

tapez exit pour sortir - Vous pouvez l'exécuter en mode détaché et il continuera à fonctionner.

Avec la commande exec, nous pouvons nous reconnecter

docker container run -it -d Alpine /bin/sh

vérifiez qu'il est HAUT et copiez les 2 ou 3 premiers chiffres de l'ID du conteneur

docker container ls

se connecter avec la commande exec

docker exec -it <CONTAINER ID or just 2-3 digits> sh

Vous devrez ARRÊTER sinon il continuera à fonctionner.

docker stop <CONTAINER ID>
2
vimal krishna

Ce que vous devez faire est ci-dessous

docker run -d --name myalpine Alpine tail -f /dev/null

Cela garantirait que votre conteneur ne meure pas. Maintenant, chaque fois que vous avez besoin d'installer des packages à l'intérieur, entrez simplement dans le conteneur à l'aide de sh

docker exec -it myalpine /bin/sh

Si pour une raison quelconque votre conteneur meurt, vous pouvez toujours le redémarrer en utilisant

docker start myalpine
1
Tarun Lalwani

Exécutez Alpine en arrière-plan

$ docker run --name alpy -dit Alpine
$ docker ps

Attacher à Alpine

$ docker attach alpy
1
user3224696