Cómo eliminar todas las imágenes locales de Docker Docker

267

Recientemente he comenzado a usar acoplable y nunca di cuenta de que debo utilizar docker-compose downen lugar de ctrl-co docker-compose stoppara deshacerse de mis experimentos. Ahora tengo una gran cantidad de imágenes acoplables innecesarias a nivel local.

¿Hay algún indicador que pueda ejecutar para eliminar todas las imágenes y contenedores de la ventana acoplable local?

Algo así como docker rmi --all --force--toda la bandera no existe pero estoy buscando algo con una idea similar.

Kimmo Hintikka
fuente
2
docker images purge-> eliminará todas las imágenes de
tu ventana
Con xargs:docker image ls -q | xargs -I {} docker image rm -f {}
arkadyt
@muthukumarhelius Creo que te refieres docker image prune(imagen es singular y es ciruela en lugar de purga).
Andrés Mejía

Respuestas:

535

Para eliminar todos los contenedores, incluidos sus volúmenes de uso,

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

Para borrar todas las imágenes,

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

Recuerde, debe eliminar todos los contenedores antes de eliminar todas las imágenes a partir de las cuales se crearon esos contenedores.

En caso de que esté trabajando en Windows (Powershell),

$images = docker images -a -q
foreach ($image in $images) { docker image rm $image -f }
techtabu
fuente
77
unknown shorthand flag: 'a' in -acuando se ejecutadocker rmi -f $(docker images -a -q)
Ashutosh Chamoli
25
@Ashutosh Chamoli: No funciona en CMD, funciona en PowerShell.
Jack
44
Variante de una línea para PowerShell:docker images -a -q | % { docker image rm $_ -f }
CodeStix
44
Debo haber venido aquí cientos de veces. Gracias por escribir esta respuesta!
Ajay Maity
「Docker rmi -f $ (imágenes de docker -a -q)」 es realmente
duro
176

Use esto para eliminar todo :

docker system prune -a --volumes

Elimine todos los contenedores, volúmenes, redes e imágenes no utilizados

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

Robert
fuente
1
Sin embargo, en realidad no reclama todo el espacio en disco.
lucian303
@ lucian303 este enfoque recupera espacio en disco. Quizás estés enfrentando un problema en particular.
Robert
Parece que solo obtengo el resultado deseado cuando hago esto y los pasos en la respuesta de
@techtabu
31

Para borrar todo lo simple:

$ docker system prune --all

Todo significa:

  • todos los contenedores detenidos
  • todas las redes no utilizadas por al menos un contenedor
  • todas las imágenes sin al menos un contenedor asociado a ellas
  • todo construir caché
Renatex
fuente
26

docker image prune -a

Elimine todas las imágenes no utilizadas, no solo las que cuelgan. Agregar -fopción para forzar.

Versión local del docker: 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
Robert Ranjan
fuente
7

Comandos fáciles y prácticos

Para borrar todas las imágenes

docker rmi $(docker images -a)

Para eliminar contenedores que están en estado salido

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

Para eliminar contenedores que están en estado creado

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

NOTA: elimine todos los contenedores y luego elimine las imágenes

Nirmal profundo
fuente
para eliminar todas las imágenes, debe ser - "docker rmi $ (docker images -a -q)". -q devuelve solo los identificadores de imagen
Jimmy MG Lim
eso significa que ha eliminado esas imágenes. Vuelva a verificar una vez más
Deep Nirmal
3

Para borrar todas las imágenes:

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

Explicación:

imágenes del acoplador -a | awk {'print $ 3'}

Este comando devolverá todas las identificaciones de imagen y luego se utilizará para eliminar la imagen utilizando su identificación.

PalFS
fuente
3

Eliminar sin invocar docker :

rm -rf /var/lib/docker

Esto no se recomienda si puede ejecutar Docker normalmente, pero si por alguna razón no puede o no quiere, esto funcionará.

VasiliNovikov
fuente
2

Puedes intentarlo así:

docker system prune
Bablu Ahmed
fuente
En mi caso, esto eliminaría un volumen que todavía uso. No use esto si no sabe lo que hace
Zach Smith
2

Para borrar todas las imágenes:

docker rmi $(docker images -a -q)

donde -a es todo y -q es devolver solo identificadores de imagen

Para eliminar imágenes no utilizadas y contenedores:

docker system prune

tenga cuidado como si estuviera usando el enjambre Docker, y su máquina local se está uniendo a un enjambre remoto (como gerente / trabajador), su local será el repositorio desplegado. Al ejecutar esto, se eliminan las imágenes desplegadas.

Jimmy MG Lim
fuente
2
docker rmi $(docker images -q) --force
simencore
fuente
2
Debe agregar alguna explicación al dejar una respuesta en una publicación, para que otros que la encuentren más tarde puedan entenderla.
Morphyish el
1

Agregando a la respuesta aceptada de techtabu, si está usando Docker en Windows, puede usar el siguiente comando

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

aquí, el comando docker ps -a -qenumera todas las imágenes y esta lista se pasa docker rmuna por una

vea esto para obtener más detalles sobre cómo funciona este tipo de formato de comando en Windows cmd.

corvo
fuente
1

Otra forma con xargs

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

Para eliminar todas las imágenes locales de Docker Docker, siga 2 pasos:

Paso 1: imágenes acoplables (enumere todas las imágenes acoplables con ID)

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

Paso 2: Docker image rm 31e522c6cfe4 (ID DE IMAGEN)

      OUTPUT : image deleted
Debasis Das
fuente