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' rmi
aide, la syntaxe appropriée est docker rmi IMAGE [IMAGE...]
, et je ne sais pas quoi faire de cela.
Comment 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 cours docker ps
, aucun conteneur n'apparaît. Running docker images
montre quatre (4) base
images et une (1) node
image.
docker info
affiche la quantité réelle d'images, vous pouvez essayer que./docker images -a -q | sort | uniq | wc -l
ce soit le même résultat (-a pour toutes les images, -q pour les identifiants uniquement).docker ps
affiche uniquement les conteneurs actifs, vous pouvez fairedocker ps -a
pour répertorier tous les conteneurs-D
option et le client également?docker -d -D& ; docker -D rmi <id>
. Pouvez-vous également essayerCID=$(docker run -d ubuntu bash); ID=$(docker commit $CID); docker rmi $ID
?Réponses:
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)
la source
docker ps -aq | Foreach-Object { docker stop $_; docker rm $_; }
Voici quelques façons de supprimer des images / conteneurs Docker:
Supprimer une seule image
Supprimer toutes les images
Tuez les conteneurs et retirez-les:
Remarque: remplacez
kill
parstop
pour un arrêt progressifSupprimer toutes les images sauf "mon-image"
Utilisez grep pour supprimer tout sauf
my-image
etubuntu
Ou (sans awk)
docker rmi $(docker images --quiet | grep -v $(docker images --quiet ubuntu:my-image))
la source
docker rmi $(docker images -qf "dangling=true")
docker rm $(docker kill $(docker ps -a -q))
docker rmi $(docker images --quiet | grep -v $(docker images --quiet ubuntu:my-image))
Supprimer tous les conteneurs Docker
Supprimer toutes les images de docker
la source
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
sudo docker rmi -f $(sudo docker images | grep "<none>" | awk "{print \$3}")
, puis supprimer les balises de sortie en direct de 2015 (par exemplelive-20150121223
), nous pouvons le fairesudo docker rmi -f $(sudo docker images | grep live-2015 | awk "{print \$3}")
Pour supprimer une image de Docker à l'aide de l'ID d'image:
Obtenez la liste de toutes les images
Identifiez l'ID d'image de l'image que vous souhaitez supprimer, par exemple:
Enfin, supprimez l'image à l'aide de l'ID de l'image (seuls les trois premiers chiffres sont requis)
la source
Image:
Récipient:
la source
Mise à jour, comme commenté par VonC dans Comment supprimer les anciens conteneurs Docker .
Avec Docker 1.13 (Q4 2016), vous avez désormais:
docker system prune
supprimera TOUTES les données inutilisées (c'est-à-dire dans l'ordre: conteneurs arrêtés, volumes sans conteneurs et images sans conteneurs).Voir PR 26108 et commit 86de7c0 , qui introduisent quelques nouvelles commandes pour faciliter la visualisation de l'espace occupé par les données du démon Docker sur le disque et permettant de nettoyer facilement les excès "inutiles".
la source
Suppression de conteneurs
Pour supprimer un conteneur spécifique
Pour une seule image
Pour plusieurs images
Supprimer les conteneurs sortis
Retirez tous les conteneurs
Suppression d'images
Supprimer des images spécifiques
pour une seule image
pour plusieurs images
Supprimer les images pendantes Les images pendantes
sont des calques qui n'ont aucune relation avec les images balisées, car les images Docker sont constituées de plusieurs images.
Supprimer toutes les images Docker
Suppression de volumes
Pour répertorier les volumes, exécutez
docker volume ls
Supprimer un volume spécifique
Supprimer les volumes pendants
Supprimer un conteneur et ses volumes
la source
CONTAINER_ID
?docker rm container_name
docker rmi image_name
la source
Trouver l'ID du conteneur,
la source
daf644660736
? Comment est-ce lié à l'un des précédents?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 marchedocker rm container-id
- Pour supprimer / supprimer le conteneurpuis,
docker rmi image-id
- Pour supprimer / supprimer l'imagela source
Pour les versions 1.13 et supérieures:
Comparant:
docker image rm
etdocker rmi
,les
[OPTIONS]
semblent ne pas avoir de différence.De: Présentation de Docker 1.13
la source
Docker fournit une commande à supprimer
images
.Exemple:
Vous pouvez donc supprimer ce filtre d'images comme ceci:
la source
Supprimez-les tous en utilisant
Étape 1: Tuez tous les conteneurs
Étape 2: RM les premiers
Étape 3: supprimer les images en utilisant la force
Utilisez l'étape 1 au cas où vous obtenez une erreur disant qu'il ne peut pas être supprimé en raison des dépendances de l'enfant
la source
Si vous souhaitez nettoyer automatiquement / périodiquement les conteneurs sortis 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 cela en production car nous déployons plusieurs fois par jour sur plusieurs serveurs, et je ne veux pas aller sur chaque serveur pour nettoyer (ce serait pénible).
Exécutez simplement:
Il s'exécutera toutes les 30 minutes (ou aussi longtemps que vous le définissez à l'aide de l'option DELAY_TIME = 1800) et nettoiera les conteneurs et les images sortants.
Plus de détails: https://github.com/meltwater/docker-cleanup/blob/master/README.md
la source
Voici un script shell pour supprimer une image balisée (nommée) et ses conteneurs. Enregistrer en tant que docker-rmi et exécuter en utilisant «docker-rmi my-image-name»
la source
xargs -r
le faire fonctionner dans le boîtier sans correspondance.Pourquoi personne n'a mentionné
docker-compose
! Je ne l'utilise que depuis une semaine et je ne peux pas survivre sans. Tout ce dont vous avez besoin est d'écrire un yml qui ne prend que quelques minutes d'étude, puis vous êtes prêt à partir. Il peut démarrer des images, des conteneurs (qui sont nécessaires dans les soi-disant services) et vous permet de consulter les journaux comme vous l'utilisez avec les commandes natives de docker. Essayez-le:Avant d'utiliser Docker-compose, j'ai écrit mon propre script shell, puis j'ai dû personnaliser le script à tout moment, en particulier lorsque l'architecture de l'application a changé. Maintenant, je n'ai plus besoin de le faire, grâce à docker-compose.
la source
docker-compose
est un outil d'orchestration et souvent peu pratique pour une utilisation dans des projets simples. Unedocker
solution autonome (ne nécessitant pas l'utilisation de configurations souvent finnickydocker-compose.yml
) est préférable dans le contexte de cette question. De plus, il existe déjà de très nombreuses bonnes réponses.Pour moi, les choses suivantes ont bien fonctionné:
Ensuite, allez-y et supprimez une image en exécutant certaines comme celles-ci:
la source
Liste des images:
Supprimer des images:
Supprimer de force:
la source
Dans mon cas, le problème est que j'ai des images de remorquage avec le même nom, la solution consiste à ajouter la balise après le nom ou l'identifiant
ex:
la source