web-dev-qa-db-fra.com

Comment supprime-t-on une image dans Docker?

J'exécute Docker sous Vagrant sous OS X 10.8.4 (Mountain Lion) et chaque fois que j'essaie de supprimer une image enregistrée, j'obtiens une erreur:

$ docker rmi some-image-id
2013/07/15 hh:mm:ss unexpected JSON input

Selon l'aide rmi, la syntaxe appropriée est docker rmi IMAGE [IMAGE...], et je ne suis pas sûr de ce qu'il faut en penser.

Comment puis-je supprimer une image?

$ docker version
Client version: 0.4.8
Server version: 0.4.8
Go version: go1.1

$docker info
Containers: 1
Images: 3

Fait intéressant, lorsque je lance docker ps, aucun conteneur ne s'affiche du tout. Lancer docker images affiche quatre (4) images base et une (1) image node.

787
Jules

Essayez docker rmi node. Cela devrait fonctionner.

Voir tous les conteneurs créés est aussi simple que docker ps -a.

Pour supprimer tous les conteneurs existants (pas les images!), Exécutez docker rm $(docker ps -aq)

962
Nick Stinemates

Voici quelques manières de supprimer les images/conteneurs de docker:

Supprimer une seule image

docker rmi image_name:version/image-id

Supprimer toutes les images

docker rmi $(docker images -qf "dangling=true")

Tuez les contenants et retirez-les:

docker rm $(docker kill $(docker ps -aq))

Remarque: remplacez kill par stop pour un arrêt progressif

Supprimer toutes les images sauf "my-image"

Utilisez grep pour supprimer tout sauf my-image et ubuntu

docker rmi $(docker images | grep -v 'ubuntu\|my-image' | awk {'print $3'})

Ou (sans awk)

docker rmi $(docker images --quiet | grep -v $(docker images --quiet ubuntu:my-image))

542
Ulises

Supprimer tous les conteneurs de menu fixe

docker rm $(docker ps -a -q)

Supprimer toutes les images du menu fixe

docker rmi $(docker images -q)
192
Chrysalis

Pour supprimer une image de Docker à l'aide de l'ID d'image:

  1. Obtenir la liste de toutes les images

    docker images
    
  2. Identifiez l'ID de l'image que vous souhaitez supprimer, par exemple:

    REPOSITORY     TAG     IMAGE ID        CREATED        VIRTUAL SIZE
    kweku360/Java  latest  08d3a9b8e166    2 weeks ago         5.733 GB`
    
  3. Enfin, supprimez l’image en utilisant l’ID d’image (seuls les trois premiers chiffres sont requis)

    docker rmi 08d
    
67
kweku360

Image:

  1. Liste des images

    images de menu fixe

  2. Supprimer une image

    docker rmi nom_image

  3. Forcer supprimer une image

    docker rmi -f nom_image

Récipient:

  1. Lister tous les conteneurs

    docker ps -a

  2. Retirer un conteneur

    docker rm container_id

  3. Forcer retirer un conteneur

    docker rm -f conteneur_id

34
hackfox code

Mise à jour, commentée par VonC dans Comment supprimer les anciens conteneurs Docker.

Avec Docker 1.13 (T4 2016), vous avez maintenant:

docker system Prune supprimera TOUTES les données inutilisées (c.-à-d., Dans l’ordre: conteneurs arrêtés, volumes sans conteneurs et images sans conteneurs).

Voir PR 26108 et commit 86de7c , qui introduisent quelques nouvelles commandes afin de faciliter la visualisation de l'espace occupé par les données du démon Docker sur le disque et de le nettoyer facilement " inutile "excès.

_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
_
28
qkrijger

Retrait des conteneurs

  1. Pour supprimer un conteneur spécifique

    docker rm CONTAINER_ID CONTAINER_ID
    
    • Pour une seule image

      docker rm  70c0e19168cf
      
    • Pour plusieurs images

      docker rm  70c0e19168cf c2ce80b62174
      
  2. Supprimer les conteneurs sortis

    docker ps -a -f status=exited
    
  3. Retirez tous les conteneurs

    docker ps -q -a | xargs docker rm
    

Supprimer des images

docker rmi IMAGE_ID
  1. Supprimer des images spécifiques

    • pour une seule image

      docker rmi ubuntu
      
    • pour plusieurs images

      docker rmi ubuntu Alpine
      
  2. Supprimer les images pendantes
    Les images suspendues sont des calques sans relation avec les images marquées, car les images Docker sont constituées de plusieurs images.

    docker rmi -f $(docker images -f dangling=true -q)
    
  3. Supprimer toutes les images Docker

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

Supprimer des volumes

Pour lister les volumes, lancez docker volume ls

  1. Supprimer un volume spécifique

    docker volume rm VOLUME_NAME
    
  2. Supprimer les volumes en suspens

    docker volume rm $(docker volume ls -f dangling=true -q)
    
  3. Supprimer un conteneur et ses volumes

    docker rm -v CONTAINER_NAME
    
22

docker rm container_name

docker rmi image_name

_docker help_

supprimer un ou plusieurs conteneurs

rmi Supprimer une ou plusieurs images

19
KunMing Xie
docker rmi  91c95931e552

Réponse d'erreur du démon: Conflict, impossible de supprimer 91c95931e552 car le conteneur 76068d66b290 l'utilise, utilisez -f pour forcer FATA [0000] Erreur: échec de la suppression d'une ou plusieurs images

Trouver l'identifiant du conteneur,

# docker ps -a

# docker rm  daf644660736 
13
lakshmikandan

Tout d'abord, nous devons arrêter et supprimer les conteneurs Docker qui sont attachés avec l'image Docker que nous allons supprimer.

Donc pour ça, d'abord

  • docker stop container-id - Pour arrêter le conteneur en cours d'exécution
  • docker rm container-id - Pour supprimer/supprimer le conteneur

ensuite,

  • docker rmi image-id - Pour supprimer/supprimer l'image
4

Pour les versions 1.13 et supérieures:

docker image rm [OPTIONS] IMAGE [IMAGE...]

Comparant:

les [OPTIONS] semblent n'avoir aucune différence.

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

De: Présentation de Docker 1.1

CLI restructurée

Dans Docker 1.13, nous avons regroupé toutes les commandes pour les placer sous l’objet logique avec lequel elles interagissent. Par exemple, list et start des conteneurs sont maintenant des sous-commandes de docker container et history est une sous-commande de docker image.

Ces modifications nous ont permis de nettoyer la syntaxe Docker CLI, d'améliorer le texte d'aide et de simplifier l'utilisation de Docker. L'ancienne syntaxe de commande est toujours prise en charge, mais nous encourageons tout le monde à adopter la nouvelle syntaxe .

2
tgogos

Docker fournit une commande pour supprimer images.

Afficher/Supprimer Images:

docker images
docker images -a # All images
docker images --no-trunc # List the full length image IDs

docker images --filter "dangling=true" // Show unstage images
docker rmi $(docker images -f "dangling=true" -q) # Remove on unstages images

docker rmi <REPOSITORY> or <Image ID> # Remove a single image

docker image Prune # Interactively remove dangling images
docker image Prune -a # Remove all images

or 

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

Vous pouvez également utiliser les paramètres filter pour supprimer un ensemble d’images en une fois:

Exemple:

$docker images --filter "before=<hello-world>" // It will all images before hello-world

$docker images --filter "since=<hello-world>" // It will all images since hello-world

Vous pouvez donc supprimer les images de filtre comme ceci:

docker rmi $(docker images --filter "since=<hello-world>")
docker rmi $(docker images --filter "before=<hello-world>")
2
JustChill

Supprimer tous en utilisant

Étape 1: Tuez tous les conteneurs

for i in `Sudo docker ps -a | awk '{ print $1 }'`; do Sudo docker kill $i ; done

Étape 2: RM les premiers

for i in `Sudo docker ps -a | awk '{ print $1 }'`; do Sudo docker rm $i ; done

Étape 3: Supprimer les images avec force

for i in `Sudo docker images | awk '{ print $3}'`; do  Sudo docker rmi --force $i ; done

Utilisez l'étape 1 au cas où vous auriez une erreur en disant qu'il ne peut pas être supprimé en raison de dépendances enfants.

1
chandank

Voici un script Shell pour supprimer une image étiquetée (nommée) et ses conteneurs. Enregistrez sous docker-rmi et exécutez-vous avec 'docker-rmi mon-image-nom'

#!/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
1
Alex M

Si vous souhaitez nettoyer automatiquement/périodiquement les conteneurs supprimés et supprimer les images et les volumes qui ne sont pas utilisés par un conteneur en cours d'exécution, vous pouvez télécharger l'image meltwater/docker-cleanup.

J'utilise ceci en production car nous déployons plusieurs fois par jour sur plusieurs serveurs, et je ne veux pas aller nettoyer chaque serveur pour le nettoyer (ce serait un problème).

Il suffit de courir:

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

Il s'exécutera toutes les 30 minutes (ou quelle que soit la durée choisie à l'aide de l'option DELAY_TIME = 1800) et nettoiera les conteneurs et les images sortis.

Plus de détails: https://github.com/meltwater/docker-cleanup/blob/master/README.md

1
Innocent Anigbo