2015-02-07 48 views
17

quando eseguo un comando come sudo docker rmi me/myimage ottengo la responce ... immagine non taggata, ma, quando rieseguo le immagini sudo docker posso vedere che questa immagine "senza tag" è ancora lì, e, se eseguo df -h, posso vedere che i file attuali esistono ancora e occupano lo spazio del file system. Quale comando o procedura posso usare per rimuovere fisicamente le immagini non necessarie?come rimuovere fisicamente le immagini della finestra mobile senza tag

risposta

29

Si dovrebbe essere in grado di rimuovere le immagini senza tag Docker usando il flag "dangling=true":

sudo docker rmi $(sudo docker images -f "dangling=true" -q) 

fonte:

https://docs.docker.com/engine/reference/commandline/images/

+2

io ancora continuo a vedere le cose in questo modo: 5e76bce9b555 2 giorni fa 3,488 GB f4ef5d62dac0 2 giorni fa 3.348 GB 1fb11b87d78e 2 giorni fa 2.707 GB 9f4c46af8113 2 giorni fa 386.9 MB 22fcde4c8949 2 giorni fa 16.45 MB c7b84131dd95 –

+1

Puoi essere un po 'più specifico? cosa intendi con "continua a vedere"? Sarebbe meglio se tu aggiungessi comandi specifici che stai eseguendo e l'output alla tua domanda tramite una modifica. Meglio essere molto espliciti riguardo ai comandi che hai eseguito e in quale ordine. –

+0

quando ho eseguito immagini docker sudo vedo un numero di voci come: 9f4c46af8113 due giorni fa 386,9 MB –

1

Se la soluzione Giovanni Petrone non funziona, provare a rimuovere quelle immagini che si riferiscono esplicitamente lo IMAGE ID visualizzato quando si esegue docker images. È possibile rimuovere tutti con un solo comando

for i in immagini sudo docker | grep \ | awk '{print $ 3}' ; do sudo docker rmi $i; done

PD: Non so Giovanni Petrone risposta. Funziona bene con Docker 1.4.1

18

prima cosa è necessario rimuovere i contenitori uscito, quindi rimuovere le immagini penzoloni.

docker rm $(docker ps -q -f status=exited) 
docker rmi $(docker images -q -f dangling=true) 

Dopo tutto, ho creato lo script seguente come ~/bin/dclean e lo sto usando.

#!/bin/sh 

processes=`docker ps -q -f status=exited` 
if [ -n "$processes" ]; then 
    docker rm $processes 
fi 

images=`docker images -q -f dangling=true` 
if [ -n "$images" ]; then 
    docker rmi $images 
fi 
+0

bello, è più completo. Rimozione del contenitore uscito deve essere il primo passo per tenerlo pulito –

+0

Questa dovrebbe essere la risposta. –

0

è possibile eliminare singole immagini per la loro immagine id ...

docker images 
docker rmi <image-id> 
Problemi correlati