none - ¿Cómo se quita una imagen en Docker?
eliminar volumenes de docker (16)
Eliminar todos los contenedores docker
docker rm $(docker ps -a -q)
Eliminar todas las imágenes de la ventana acoplable
docker rmi $(docker images -q)
Estoy ejecutando Docker bajo Vagrant bajo 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 ayuda de rmi
, la sintaxis correcta es docker rmi IMAGE [IMAGE...]
, y no estoy seguro de qué hacer al respecto.
¿Cómo puedo borrar 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 ejecuto docker ps
, no aparecen contenedores en absoluto. La ejecución de docker images
muestra cuatro (4) imágenes base
y una (1) imagen de node
.
Quitando contenedores
Para eliminar el contenedor específico
docker rm CONTAINER_ID CONTAINER_ID
Para una sola imagen
docker rm 70c0e19168cf
Para multiples imagenes
docker rm 70c0e19168cf c2ce80b62174
Retire los contenedores salidos
docker ps -a -f status=exited
Quitar todos los contenedores
docker ps -q -a | xargs docker rm
Eliminando imagenes
docker rmi IMAGE_ID
Eliminar imagenes especificas
para una sola imagen
docker rmi ubuntu
para multiples imagenes
docker rmi ubuntu alpine
Eliminar imágenes colgantes
Las imágenes colgantes son capas que no tienen relación con ninguna imagen etiquetada, ya que las imágenes de Docker están constituidas por varias 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)
Eliminando Volúmenes
Para listar los volúmenes, ejecute el docker volume ls
Eliminar un volumen específico
docker volume rm VOLUME_NAME
Eliminar los volúmenes colgantes.
docker volume rm $(docker volume ls -f dangling=true -q)
Retirar un contenedor y sus volúmenes.
docker rm -v CONTAINER_NAME
Imagen:
- Listar imagenes
imágenes docker
- Quitar una imagen
docker rmi nombre_imagen
- Fuerza eliminar una imagen
docker rmi -f nombre_imagen
Envase:
- Listar todos los contenedores
docker ps -a
- Quitar un recipiente
docker rm container_id
- Fuerza retirar un contenedor
docker rm -f container_id
Actualización, según lo comentado por VonC en Cómo eliminar los antiguos contenedores Docker
Con docker 1.13 (Q4 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 commit 86de7c0 , que presentan algunos comandos nuevos para ayudar a facilitar la visualización de la cantidad de espacio que los datos del demonio docker están tomando en el disco y 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
Aquí hay un script de shell para eliminar una imagen etiquetada (nombrada) y sus contenedores. Guarde como docker-rmi y ejecute usando ''docker-rmi my-image-name''
#!/bin/bash
IMAGE=$1
if [ "$IMAGE" == "" ] ; then
echo "Missing image argument"
exit 2
fi
docker ps -qa -f "ancestor=$IMAGE" | xargs docker rm
docker rmi $IMAGE
Eliminar todos ellos usando
Paso 1: Mata todos los contenedores
for i in `sudo docker ps -a | awk ''{ print $1 }''`; do sudo docker kill $i ; done
Paso 2: RM ellos primero
for i in `sudo docker ps -a | awk ''{ print $1 }''`; do sudo docker rm $i ; done
Paso 3: Borrar las imágenes usando la fuerza.
for i in `sudo docker images | awk ''{ print $3}''`; do sudo docker rmi --force $i ; done
Use el paso 1 en caso de que reciba un error que indique que no se puede eliminar debido a dependencias secundarias
En primer lugar, tenemos que detener y eliminar los contenedores acoplados que se adjuntan con la imagen acoplable que vamos a eliminar.
Así que para eso, primero
-
docker stop container-id
- Para detener el contenedor en ejecución -
docker rm container-id
- Para eliminar / eliminar el contenedor
entonces,
-
docker rmi image-id
- Para eliminar / eliminar la imagen
Las siguientes son algunas de las formas de eliminar imágenes / contenedores de la ventana acoplable:
Quitar una sola imagen
docker rmi image_name:version/image-id
Eliminar todas las imagenes
docker rmi $(docker images -qf "dangling=true")
Matar los contenedores y eliminarlos:
docker rm $(docker kill $(docker ps -aq))
Nota: Reemplace kill
con stop
para el cierre elegante
Eliminar todas las imágenes excepto "my-image"
Usa 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))
Lista de imágenes:
ahanjura@ubuntu:~$ sudo docker images
ID DE LA IMAGEN DE LA ETIQUETA DEL REPOSITORIO TAMAÑO CREADO 88282f8eda00 Hace 19 segundos. 308.5 MB 13e5d3d682f4. Hace 19 horas. busybox última 6ad733544a63 hace 6 semanas 1.129 MB ubuntu 16.10 7d3f705d307c hace 5 meses 106.7 MB
Eliminar imágenes:
ahanjura@ubuntu:~$ sudo docker rmi 88282f8eda00
Eliminado: sha256: 88282f8eda0036f85b5652c44d158308c6f86895ef1345dfa788318e6ba31194 eliminado: sha256: 4f211a991fb392cd794bc9ad8833149cd9400c5955958c4017b1e2dc415e25e9 eliminado: sha256: 8cc6917ac7f0dcb74969ae7958fe80b4a4ea7b3223fc888dfe1aef42f43df6f8 eliminado: sha256: b74a8932cff5e61c3fd2cc39de3c0989bdfd5c2e5f72b8f99f2807595f8ece43
ahanjura@ubuntu:~$ sudo docker rmi 13e5d3d682f4
Respuesta de error del demonio: conflicto: no se pudo eliminar 13e5d3d682f4 (debe ser forzado): la imagen está siendo utilizada por el contenedor detenido
Borrar por la fuerza:
ahanjura@ubuntu:~$ sudo docker rmi -f 13e5d3d682f4
Eliminado: sha256: 13e5d3d682f4de973780b35a3393c46eb314ef3db45d3ae83baf2dd9d702747e Eliminado: sha256: 3ad9381c7041c03768ccd855ec86caa6bc0244223f10b0465c4898bdb21dc378 Eliminado: sha256: 5ccb917bce7bc8d3748eccf677d7b60dd101ed3e7fd2aedebd521735276606af Eliminado: sha256: 18356d19b91f0abcc04496729c9a4c49e695dbfe3f0bb1c595f30a7d4d264ebf
Para eliminar una imagen de la ventana acoplable mediante el 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`
Por último, elimine la imagen utilizando la identificación de la imagen (solo se requieren los primeros tres dígitos)
docker rmi 08d
Para las versiones 1.13 y superiores:
docker image rm [OPTIONS] IMAGE [IMAGE...]
Comparando
- La documention de la
docker image rm
y - la documentation de
docker rmi
,
Las [OPTIONS]
parecen no tener diferencia.
--force , -f Force removal of the image
--no-prune Do not delete untagged parents
CLI reestructurado
En Docker 1.13, reagrupamos cada comando para ubicarnos bajo el objeto lógico con el que está interactuando. Por ejemplo, la
list
y elstart
de los contenedores ahora son subcomandos deldocker container
de ladocker container
y elhistory
es un subcomando de ladocker image
de ladocker image
.Estos cambios nos permiten limpiar la sintaxis de la CLI de Docker, mejorar el texto de ayuda y simplificar el uso de Docker. La antigua sintaxis de comandos aún es compatible, pero recomendamos a todos que adopten la nueva sintaxis .
Para mí lo siguiente funcionó bien:
> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
debian jessie 86baf4e8cde9 3 weeks ago 123MB
ubuntu yakkety 7d3f705d307c 3 weeks ago 107MB
alpine 3.5 074d602a59d7 7 weeks ago 3.99MB
Luego sigue adelante y elimina una imagen ejecutando algunas como estas:
> docker rmi debian:jessie
> docker rmi ubuntu:yakkety
> docker rmi alipine:3.5
Si desea limpiar automáticamente / periódicamente los contenedores salidos y eliminar las imágenes y los volúmenes que no están siendo utilizados por un contenedor en ejecución, puede descargar esta imagen de deshielo / limpieza de la ventana acoplable.
Utilizo esto en producción ya que implementamos varias veces al día en varios servidores, y no quiero ir a todos los servidores para limpiar (eso sería un dolor).
Solo corre:
docker run -d -v /var/run/docker.sock:/var/run/docker.sock:rw -v /var/lib/docker:/var/lib/docker:rw --restart=unless-stopped meltwater/docker-cleanup:latest
Se ejecutará cada 30 minutos (o por mucho tiempo que lo configure con la opción DELAY_TIME = 1800) y limpie los contenedores e imágenes salidos.
Más detalles: https://github.com/meltwater/docker-cleanup/blob/master/README.md
Trate de 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!) Ejecute docker rm $(docker ps -aq)
docker rmi 91c95931e552
Error response from daemon: Conflict, cannot delete 91c95931e552 because the container 76068d66b290 is using it, use -f to force
FATA[0000] Error: failed to remove one or more images
encontrar la identificación del contenedor,
# docker ps -a
# docker rm daf644660736
docker rm container_name
docker rmi image_name
docker help
rm quitar uno o más contenedores
rmi eliminar una o mas imagenes