j'essaie
docker rmi c565603bc87f
Erreur:
Réponse d'erreur du démon: conflit: impossible de supprimer c565603bc87f (ne peut pas être forcé) - l'image a des images enfants dépendantes
Donc je ne peux pas supprimer l'image même avec l'option -f. Comment supprimer l'image alors et tous ses enfants?
Version Linux et docker:
uname -a Linux goracio-pc 4.4.0-24-generic # 43-Ubuntu SMP mer 8 juin 19:27:37 UTC 2016 x86_64 x86_64 x86_64 GNU / Linux
version docker Client: Version: 1.11.2 Version API: 1.23 Version Go: go1.5.4 Git commit: b9f10c9 Construit: mer 1 juin 22:00:43 2016 OS / Arch: linux / amd64
Serveur: Version: 1.11.2 Version API: 1.23 Version Go: go1.5.4 Git commit: b9f10c9 Construit: Wed Jun 1 22:00:43 2016 OS / Arch: linux / amd64
docker
docker-image
romain
la source
la source
Réponses:
Vous devriez essayer de supprimer les images inutiles avant de supprimer l'image:
Après cela, exécutez:
la source
prune
> "docker rmi" requires at least 1 argument.
--filter=dangling=true
. Si vous obtenez toujours cette erreur, cela signifie simplement que vous n'avez pas d'images pendantes, et que la commande in-set s'évalue comme une chaîne vide.Dans certains cas (comme dans mon cas), vous essayez peut-être de supprimer une image en spécifiant l'identifiant de l'image qui a plusieurs balises dont vous ne réalisez pas l'existence, dont certaines peuvent être utilisées par d'autres images. Dans ce cas, vous ne souhaiterez peut-être pas supprimer l'image .
Si vous avez un cas de balises redondantes comme décrit ici, au lieu de les
docker rmi <image_id>
utiliserdocker rmi <repo:tag>
sur la balise redondante que vous souhaitez supprimer.la source
docker rmi <repo:tag>
a fonctionné pour moi.Votre solution est assez simple parmi ces réponses, merci.Untagged: drud/ddev-webserver:20200301_leymannx_apache-junk-built
repo:tag
car cela crée huit images étiquetées partageant seulement deux identifiants d'image. Même Visual Studio ne les supprimera pas dans sa fenêtre de gestion de conteneurs ...docker rmi <repo:tag>
ne fait que dégager , elle ne supprime pas forcément une image. S'il y a plus d'une balise référençant cette image, ou s'il y a un autre problème comme par exemple celui indiqué par l'OP, l'image sera toujours là. Vous pouvez vérifier que l'image existe toujours avec la commandedocker images ls --all
.toutes les réponses précédentes sont correctes mais voici une solution qui consiste simplement à supprimer toutes vos images de force ( utilisez cette commande à vos risques et périls, elle supprimera toutes vos images )
la source
docker image rm $(docker image ls -a -q) -f
recherchez l'ID d'image et l'ID parent pour toutes les images créées après l'image en question avec les éléments suivants:
Ensuite, vous appelez la commande:
"sub_image_id" est l'ID de l'image dépendante
la source
Ce qui a fonctionné pour moi, c'est d'utiliser la combinaison REPOSITORY: TAG plutôt que IMAGE ID.
Lorsque j'ai essayé de supprimer une image docker avec la commande
docker rmi <IMAGE ID>
sans conteneur associé à cette image, j'ai eu le message:Je pourrais supprimer avec succès lorsque j'ai utilisé la commande
docker rmi RPOSITORY:TAG
la source
docker rmi 93fd78260bd1
échoué, mais a ensuitedocker tag 93fd78260bd1 ubuntu:temp && docker rmi ubuntu:temp
réussi.Untagged: ubuntu:18.04v1
). Si vous le faitesdocker images -a
, vous verrez probablement3f66bec2c6bf
toujours répertorié. Si l'image était vraiment supprimée, vous obtiendrez le messageDeleted: 3f66bec2c6bf
CETTE COMMANDE SUPPRIME TOUTES LES IMAGES (À UTILISER AVEC PRÉCAUTION)
Avez-vous essayé d'utiliser --force
Ce code ci-dessus fonctionne comme un charme même si j'ai eu le même problème
la source
La réponse ici est de trouver tous les enfants descendants, qui a une réponse ici:
docker comment puis-je obtenir la liste des images enfants dépendantes?
Ensuite, utilisez-le pour supprimer les images enfants dans l'ordre.
la source
Voici un script pour supprimer une image et toutes les images qui en dépendent.
la source
Après cela, utilisez la commande comme Nguyen l'a suggéré.
la source
En vous basant sur la méthode de force brute de Simon Brady ici , si vous n'avez pas une tonne d'images, vous pouvez utiliser cette fonction shell:
puis appelez-le en utilisant
recursive_remove_image <image-id>
.la source
Ex:
la source
Lorsque je veux supprimer une image inutilisée avec un nom
"<none>"
dans le docker, je suis confronté au problème.Pourunable to delete a354bbc7c9b7 (cannot be forced) - image has dependent child images
résoudre ce problème:vous pouvez voir que j'ai plusieurs images avec le nom javaapp: nom de conteneur le plus récent et différent. Donc, j'ai tué et supprimé tous les conteneurs du conteneur "javaapp: latest" avec:
ensuite
Donc je peux supprimer toutes les images avec le nom
"<none>"
bonne chance
la source
J'ai également eu ce problème, je pourrais résoudre le problème avec les commandes ci-dessous. cela peut être dû au fait que le conteneur de l'image est en cours d'exécution ou se ferme donc avant de supprimer l'image, vous devez supprimer le conteneur
docker ps -a -f status = exited: cette commande affiche tous les conteneurs sortis, copiez alors l'ID du conteneur, puis exécutez les commandes ci-dessous pour supprimer le conteneur
docker rm #containerId: cette commande supprime le conteneur cela peut être un problème qui mentionne "l'image a des images enfants dépendantes"
Ensuite, essayez de supprimer l'image avec la commande ci-dessous
docker rmi #ImageId
la source
J'ai eu ce problème et aucune des réponses courtes ici n'a fonctionné, même dans la page mentionnée par @tudor ci-dessus. J'ai pensé partager ici comment je me suis débarrassé des images. J'ai eu l'idée que les images dépendantes doivent être> = la taille de l'image parente, ce qui permet de l'identifier afin que nous puissions la supprimer.
J'ai répertorié les images par taille pour voir si je pouvais repérer des corrélations:
Ce que cela fait, c'est utiliser une mise en forme spéciale du menu fixe pour positionner d'abord la colonne de taille de l'image, puis exécuter un tri lisible par l'homme dans l'ordre inverse. Ensuite, je restaure les colonnes faciles à lire.
Ensuite, j'ai regardé les
<none>
conteneurs et j'ai fait correspondre le premier de la liste avec une taille similaire. J'ai effectué un simpledocker rmi <image:tag>
sur cette image et toutes les<none>
images d'enfants sont allées avec.L'image problématique avec toutes les images enfants était en fait la foutue
myrepo/getstarted-lab
image que j'ai utilisée lorsque j'ai commencé à jouer avec docker. C'était parce que j'avais créé une nouvelle image à partir de la première image de test qui a créé la chaîne.Espérons que cela aide quelqu'un d'autre à un moment donné.
la source
Supposons que nous ayons un Dockerfile
Nous construisons une image à partir de cela sans TAG ni dénomination
Maintenant, nous avons un rapport de réussite "Construit avec succès 57ca5ce94d04" Si nous voyons les images du docker
Nous devons d'abord supprimer le
docker rmi 57ca5ce94d04
Suivi par
Par cette image sera supprimée!
Un éloignement forcé de tout comme suggéré par quelqu'un
la source
Extension de la réponse fournie par @Nguyen - cette fonction peut être ajoutée à votre
.bashrc
etc, puis appelée à partir de la ligne de commande pour aider à nettoyer lesimage has dependent child images
erreurs ...Vous pouvez exécuter la fonction comme vous-même, et si un
docker ps
échoue, il exécutera ladocker
commande avecsudo
et vous demandera votre mot de passe.Ne supprime PAS les images pour les conteneurs en cours d'exécution!
J'ai aussi ceci dans mon
.bashrc
dossier ...Marche avec:
la source
Forcer la suppression d'une liste d'images (exclure la version 10, par exemple)
la source
vous pouvez simplement faire ceci:
➜ ~ sudo docker rmi 4ed13257bb55 -f Deleted: SHA256: 4ed13257bb5512b975b316ef482592482ca54018a7728ea1fc387e873a68c358 Deleted: SHA256: 4a478ca02e8d2336595dcbed9c4ce034cd15f01229733e7d93a83fbb3a9026d3 Deleted: SHA256: 96df41d1ce6065cf75d05873fb1f9ea9fed0ca86addcfcec7722200ed3484c69 Deleted: SHA256: d95efe864c7096c38757b80fddad12819fffd68ac3cc73333ebffaa42385fded
la source
Couche d'image: les référentiels sont souvent appelés images ou images de conteneur, mais en réalité, ils sont constitués d'une ou plusieurs couches. Les couches d'image d'un référentiel sont connectées ensemble dans une relation parent-enfant. Chaque calque d'image représente les changements entre lui-même et le calque parent.
Le modèle de construction du docker utilise l' héritage . Cela signifie que la version
i
dépend de la versioni-1
. Il faut donc supprimer la versioni+1
pour pouvoir supprimer la versioni
. C'est une simple dépendance.Si vous souhaitez supprimer toutes les images sauf la dernière (la plus mise à jour) et la première (de base), nous pouvons exporter la dernière (la plus mise à jour) en utilisant la
docker save
commande ci-dessous.Ensuite, maintenant, supprimez toutes les images en utilisant image-id comme ci - dessous.
Maintenant, chargez votre image tgz enregistrée comme ci-dessous.
voir l'id-image de votre image chargée à l'aide de docker ps -q. Il n'a ni étiquette ni nom. Vous pouvez simplement mettre à jour la balise et le nom comme indiqué ci-dessous.
la source