Estrai un'immagine
docker image pull alpine
Vedi che l'immagine è lì
docker image ls OR just docker images
guarda cosa c'è dentro l'alpino
docker run alpine ls -al
Ora la tua domanda è come stare con la shell
docker container run -it alpine /bin/sh
Sei all'interno della riga di comando dello script della shell. Alcune distribuzioni potrebbero avere una shell bash.
docker exec -it 5f4 sh
/ # (<-- you can run linux command here!)
A questo punto, puoi usare la riga di comando di alpine e fare
ls -al
digita exit per uscire:puoi eseguirlo in modalità distaccata e continuerà a funzionare.
Con il comando exec possiamo accedere nuovamente
docker container run -it -d alpine /bin/sh
verifica che sia UP e copia le PRIME 2-3 cifre dell'ID contenitore
docker container ls
accedere con il comando exec
docker exec -it <CONTAINER ID or just 2-3 digits> sh
Dovrai FERMARE altrimenti continuerà a funzionare.
docker stop <CONTAINER ID>
Dovresti usare docker start
, che consente di avviare un contenitore arrestato. Se non hai assegnato un nome al contenitore, dovrai ottenere il suo nome/id utilizzando docker ps
.
Ad esempio,
$docker ps
CONTAINER ID IMAGE COMMAND
4c01db0b339c alpine bash
$docker start -i -a 4c01db0b339c
Il contenitore rimane attivo finché il processo del comando di esecuzione specificato è ancora in esecuzione. Quando specifichi di eseguire /bin/sh
, una volta uscito, il processo sh morirà e anche tu container.
Se vuoi mantenere il tuo contenitore in esecuzione, devi mantenere il processo all'interno in esecuzione. Per il tuo caso (non sono sicuro di cosa vuoi ottenere, presumo che tu stia solo testando), quanto segue lo manterrà in esecuzione
docker run -d --name alpine alpine tail -f /dev/null
Allora puoi sh
nel contenitore usando
docker exec -it alpine sh