Estoy ejecutando Docker en Vagrant con OS X 10.8.4 (Mountain Lion), y cada vez que intento eliminar una imagen guardada, aparece un error:
$ docker rmi some-image-id
2013/07/15 hh:mm:ss unexpected JSON input
De acuerdo con la rmi
ayuda, la sintaxis correcta es docker rmi IMAGE [IMAGE...]
, y no estoy seguro de qué hacer con eso.
¿Cómo puedo eliminar una imagen?
$ docker version
Client version: 0.4.8
Server version: 0.4.8
Go version: go1.1
$docker info
Containers: 1
Images: 3
Curiosamente, cuando corro docker ps
, ningún contenedor aparece en absoluto. Corriendo docker images
muestra cuatro (4) base
imágenes y uno (1) node
imagen.
Tratar docker rmi node
. Eso debería funcionar.
Ver todos los contenedores creados es tan simple como docker ps -a
.
Para eliminar todos los contenedores existentes (¡no las imágenes!) Ejecuta docker rm $(docker ps -aq)
Las siguientes son algunas de las formas de eliminar imágenes / contenedores acoplables:
Eliminar una sola imagen
docker rmi image_name:version/image-id
Eliminar todas las imágenes
docker rmi $(docker images -qf "dangling=true")
Mata contenedores y quítalos:
docker rm $(docker kill $(docker ps -aq))
Nota: reemplazar kill
con stop
para el cierre elegante
Eliminar todas las imágenes excepto "my-image"
Use grep para eliminar todo excepto my-image
y ubuntu
docker rmi $(docker images | grep -v 'ubuntu\|my-image' | awk {'print $3'})
O (sin awk)
docker rmi $(docker images --quiet | grep -v $(docker images --quiet ubuntu:my-image))
Eliminar todos los contenedores de docker
docker rm $(docker ps -a -q)
Eliminar todas las imágenes del acoplador
docker rmi $(docker images -q)
Para eliminar una imagen de la ventana acoplable con la Id de imagen
Obtener la lista de todas las imágenes
docker images
Identifique la identificación de la imagen que desea eliminar, por ejemplo:
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
kweku360/java latest 08d3a9b8e166 2 weeks ago 5.733 GB`
Finalmente, elimine la imagen con la identificación de la imagen (solo se requieren los tres primeros dígitos)
docker rmi 08d
Actualización, según lo comentado por VonC en Cómo eliminar los viejos contenedores Docker
Con Docker 1.13 (cuarto trimestre de 2016), ahora tiene:
docker system prune
eliminará TODOS los datos no utilizados (es decir, en orden: contenedores detenidos, volúmenes sin contenedores e imágenes sin contenedores).
Ver PR 26108 y cometer 86de7c0, que están introduciendo algunos comandos nuevos para ayudar a facilitar la visualización del espacio que los datos del daemon acoplador están tomando en el disco y que permiten limpiar fácilmente el exceso "innecesario".
docker system prune
WARNING! This will remove:
- all stopped containers
- all volumes not used by at least one container
- all images without at least one container associated to them
Are you sure you want to continue? [y/N] y
docker rm container_name
docker rmi image_name
docker help
rm Eliminar uno o más contenedores
rmi Eliminar una o más imágenes
Eliminando contenedores
Para eliminar un contenedor específico
docker rm CONTAINER_ID CONTAINER_ID
Eliminar los contenedores salidos
docker ps -a -f status=exited
Retire todos los contenedores
docker ps -q -a | xargs docker rm
Eliminar imágenes
docker rmi IMAGE_ID
Eliminar imágenes específicas
para una sola imagen
docker rmi ubuntu
para múltiples imagenes
docker rmi ubuntu alpine
Eliminar imágenes colgantes
Las imágenes colgantes son capas que no tienen ninguna relación con ninguna imagen etiquetada, ya que las imágenes Docker están formadas por múltiples imágenes.
docker rmi -f $(docker images -f dangling=true -q)
Eliminar todas las imágenes de Docker
docker rmi -f $(docker images -a -q)
Eliminar volúmenes
Para mostrar los volúmenes ejecutados docker volume ls
Eliminar un volumen específico
docker volume rm VOLUME_NAME
Eliminar volúmenes colgantes
docker volume rm $(docker volume ls -f dangling=true -q)
Eliminar un contenedor y sus volúmenes
docker rm -v CONTAINER_NAME