Come eliminare tutte le immagini Docker locali Docker


267

Di recente ho iniziato a utilizzare Docker e non ho mai capito che avrei dovuto usare al docker-compose downposto di ctrl-co docker-compose stopper sbarazzarmi dei miei esperimenti. Ora ho un gran numero di immagini docker non necessarie localmente.

Esiste un flag che posso eseguire per eliminare tutte le immagini e i contenitori della finestra mobile locale?

Qualcosa del tipo docker rmi --all --force: non esiste una bandiera ma sto cercando qualcosa con un'idea simile.



2
docker images purge-> rimuoverà tutte le immagini della finestra mobile
muthukumar helius il

Con xargs:docker image ls -q | xargs -I {} docker image rm -f {}
arkadyt il

@muthukumarhelius Penso che intendi docker image prune(l'immagine è singolare ed è prugna invece di epurazione).
Andrés Mejía,

Risposte:


535

Per eliminare tutti i contenitori, inclusi i suoi volumi, utilizzare,

docker rm -vf $(docker ps -a -q)

Per eliminare tutte le immagini,

docker rmi -f $(docker images -a -q)

Ricordare, è necessario rimuovere tutti i contenitori prima di rimuovere tutte le immagini da cui sono stati creati quei contenitori.

Nel caso in cui lavori su Windows (Powershell),

$images = docker images -a -q
foreach ($image in $images) { docker image rm $image -f }

7
unknown shorthand flag: 'a' in -adurante la corsadocker rmi -f $(docker images -a -q)
Ashutosh Chamoli,

25
@Ashutosh Chamoli: non funziona in CMD, funziona in PowerShell.
Jack,

4
Variante a una riga per PowerShell:docker images -a -q | % { docker image rm $_ -f }
CodeStix

4
Devo essere venuto qui centinaia di volte. Grazie per aver scritto questa risposta!
Ajay Maity,

「Docker rmi -f $ (immagini docker -a -q)」 è davvero
tosto

176

Usa questo per eliminare tutto :

docker system prune -a --volumes

Rimuovere tutti i contenitori, i volumi, le reti e le immagini non utilizzati

WARNING! This will remove:
    - all stopped containers
    - all networks not used by at least one container
    - all volumes not used by at least one container
    - all images without at least one container associated to them
    - all build cache

https://docs.docker.com/engine/reference/commandline/system_prune/#extended-description


1
In realtà non recupera tutto lo spazio su disco.
lucian303

@ lucian303 questo approccio recupera lo spazio su disco. Forse stai affrontando un problema particolare.
Robert

Mi sembra di ottenere il risultato desiderato solo quando faccio questo e i passaggi nella risposta di
@techtabu

31

Per cancellare tutto, fai tutto:

$ docker system prune --all

Tutto significa:

  • tutti fermarono i contenitori
  • tutte le reti non utilizzate da almeno un container
  • tutte le immagini senza almeno un contenitore ad esse associato
  • tutta la cache della build

26

docker image prune -a

Rimuovi tutte le immagini inutilizzate, non solo quelle penzolanti. Aggiungi -fopzione per forzare.

Versione docker locale: 17.09.0-ce, Git commit: afdb6d4, OS / Arch: darwin / amd64

$ docker image prune -h
Flag shorthand -h has been deprecated, please use --help

Usage:  docker image prune [OPTIONS]

Remove unused images

Options:
  -a, --all             Remove all unused images, not just dangling ones
      --filter filter   Provide filter values (e.g. 'until=<timestamp>')
  -f, --force           Do not prompt for confirmation
      --help            Print usage

7

Comandi facili e pratici

Per eliminare tutte le immagini

docker rmi $(docker images -a)

Per eliminare i contenitori in stato di uscita

docker rm $(docker ps -a -f status=exited -q)

Per eliminare i contenitori che si trovano nello stato creato

docker rm $(docker ps -a -f status=created -q)

NOTA: rimuovere tutti i contenitori, quindi rimuovere le immagini


per eliminare tutte le immagini, dovrebbe essere - "docker rmi $ (docker images -a -q)". -q restituisce solo gli ID immagine
Jimmy MG Lim

ciò significa che ha eliminato quelle immagini. Ricontrolla ancora una volta
Deep Nirmal il

3

Per eliminare tutte le immagini:

docker rmi -f $(docker images -a | awk {'print $3'})

Spiegazione:

immagini docker -a | awk {'print $ 3'}

Questo comando restituirà tutti gli ID immagine e quindi verrà utilizzato per eliminare l'immagine usando il suo ID.


3

Elimina senza richiamare la finestra mobile :

rm -rf /var/lib/docker

Questo non è consigliato se è possibile eseguire la finestra mobile normalmente, ma se per qualsiasi motivo non si può o non si desidera, questo funzionerà.


2

Puoi provare così:

docker system prune

Nel mio caso, questo rimuove un volume che uso ancora. Non usarlo se non sai cosa fa
Zach Smith,

2

Per eliminare tutte le immagini:

docker rmi $(docker images -a -q)

dove -a è tutto e -q restituisce solo gli ID immagine

Per rimuovere immagini inutilizzate e contenitori:

docker system prune

attenzione come se si stesse utilizzando lo sciame docker e il computer locale si unisse allo sciame remoto (come manager / lavoratore), il proprio locale sarà il repository distribuito. l'esecuzione di questo rimuove così le immagini distribuite.


2
docker rmi $(docker images -q) --force

2
Dovresti aggiungere qualche spiegazione quando lasci una risposta su un post, in modo che altri possano trovarla in un secondo momento per capirla.
Morphyish,

1

Aggiunta alla risposta accettata di techtabu, Se si utilizza la finestra mobile su Windows, è possibile utilizzare il seguente comando

for /F "delims=" %A in ('docker ps -a -q') do docker rm %A

qui, il comando docker ps -a -qelenca tutte le immagini e questo elenco viene passato docker rmuno per uno

vedere questo per maggiori dettagli su come funziona questo tipo di formato di comando in Windows cmd.


1

Un altro modo con xargs

docker image ls -q | xargs -I {} docker image rm -f {}

0

Per eliminare tutte le immagini Docker locali Docker seguire 2 passaggi:

passaggio 1: immagini della finestra mobile (elencare tutte le immagini della finestra mobile con ID)

     example :
     REPOSITORY    TAG    IMAGE ID            CREATED             SIZE
     pradip564/my  latest 31e522c6cfe4        3 months ago        915MB

passaggio 2: finestra mobile immagine rm 31e522c6cfe4 (ID IMMAGINE)

      OUTPUT : image deleted
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.