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
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
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
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>
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
$ docker run --name alpy -dit Alpine
$ docker ps
$ docker attach alpy