volumenes - imagenes docker




¿Cómo se quita una imagen en Docker? (11)

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

  1. 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 
      
  2. Retire los contenedores salidos

    docker ps -a -f status=exited
    
  3. Quitar todos los contenedores

    docker ps -q -a | xargs docker rm
    

Eliminando imagenes

docker rmi IMAGE_ID
  1. Eliminar imagenes especificas

    • para una sola imagen

      docker rmi ubuntu
      
    • para multiples imagenes

      docker rmi ubuntu alpine
      
  2. 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)
    
  3. 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

  1. Eliminar un volumen específico

    docker volume rm VOLUME_NAME
    
  2. Eliminar los volúmenes colgantes.

    docker volume rm $(docker volume ls -f dangling=true -q)
    
  3. Retirar un contenedor y sus volúmenes.

    docker rm -v CONTAINER_NAME
    

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

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))


Para eliminar una imagen de la ventana acoplable mediante el ID de imagen

  1. Obtener la lista de todas las imágenes

    docker images
    
  2. 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`
    
  3. 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

Las [OPTIONS] parecen no tener diferencia.

--force , -f        Force removal of the image
--no-prune          Do not delete untagged parents

De: Introduciendo Docker 1.13

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 el start de los contenedores ahora son subcomandos del docker container de la docker container y el history es un subcomando de la docker image de la docker 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 .


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 rm container_name

docker rmi image_name

docker help

rm quitar uno o más contenedores

rmi eliminar una o mas imagenes





docker