Je souhaite supprimer le conteneur dans Docker, mais une erreur se produit lorsque vous souhaitez supprimer
Ma prochaine étape avant de supprimer le conteneur, voir la liste des conteneurs existants
sts@Yudi:~/docker$ sudo docker ps -as
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES SIZE
78479ffeba5c ubuntu "/bin/bash" 42 hours ago Exited (0) 42 hours ago sharp_wescoff 81 B (virtual 187.7 MB)
0bd2b54678c7 training/webapp "python app.py" 5 days ago Exited (0) 5 days ago backstabbing_ritchie 0 B (virtual 323.7 MB)
0adbc74a3803 training/webapp "python app.py" 5 days ago Exited (143) 5 days ago drunk_feynman 0 B (virtual 323.7 MB)
celui que je souhaite supprimer la liste, à savoir "training / webapp" mais une erreur s'est produite
sts@Yudi:~/docker$ sudo docker rmi training/webapp
Error response from daemon: conflict: unable to remove repository reference "training/webapp" (must force) - container 0bd2b54678c7 is using its referenced image 54bb4e8718e8
Error: failed to remove images: [training/webapp]
Si le conteneur est en cours d'exécution dans les images?
Veuillez aider
docker
containers
Yuday
la source
la source
Réponses:
Il existe une différence entre les images docker et les conteneurs docker. Vérifiez cette question SO .
En bref, un conteneur est une instance en cours d'exécution d'une image. c'est pourquoi vous ne pouvez pas supprimer une image s'il existe un conteneur en cours d'exécution à partir de cette image. Il vous suffit de supprimer d'abord le conteneur.
Mise à jour pour Docker 1.13+ [depuis janvier 2017]
Fondamentalement, les commandes ci-dessus pourraient également être réécrites, plus clairement, comme suit:
De plus, si vous souhaitez tout supprimer, vous pouvez utiliser:
la source
docker rmi -f id
pour "forcer" la suppression.-f
aide lorsque vous souhaitez supprimer une image référencée dans plusieurs référentiels, ce qui est une autre raison courante pour laquelle la suppression d'une image échoue.docker container ls
ne répertorie que les conteneurs en cours d'exécution. Cela m'a dérangé jusqu'à ce que je réalise que l'ajout du-a
drapeau les répertorie tous.Tout d'abord, supprimez les noms de conteneurs
Le résultat
supprimer la deuxième partie, qui est répertoriée sur le conteneur à supprimer
Deuxièmement, retirez le conteneur
Le résultat
Vérifiez le continer
la source
rm `docker ps -aq`
de supprimer docker pour le nettoyage, plutôt que de les supprimer un à la fois. Plus d'informations iciSi vous souhaitez nettoyer les images et les conteneurs du docker
ATTENTION: cela va tout rincer
arrêter tous les conteneurs
supprimer tous les conteneurs
supprimer toutes les images
la source
docker rm $(docker ps -a -q)
. Merci!vous pouvez utiliser l'
-f
option pour forcer la suppression des conteneurs.sudo docker rmi -f training/webapp
Vous pouvez arrêter l'utilisation des conteneurs
sudo docker stop training/webapp
avant de supprimerla source
sudo docker stop 0bd2b54678c7
Si vous avez lancé plusieurs conteneurs Docker, utilisez ceci
$ docker rm $(docker ps -aq)
Il supprimera tous les dockers actuels répertoriés dans la commande "ps -aq".
Source: aaam sur https://github.com/docker/docker/issues/12487
la source
docker image ls
et ensuitedocker image rm X
où chaque X était obtenu à partir de lals
sortie.Vous avez remarqué qu'il s'agit d'une question vieille de 2 ans, mais que vous souhaitez toujours partager ma solution de contournement pour cette question particulière: tout d'
abord, exécutez
docker container ls -a
pour lister tous les conteneurs que vous avez et identifier le souhait que vous souhaitez supprimer.Deuxièmement, supprimez celui avec la commande
docker container rm <CONTAINER ID>
(si le conteneur est en cours d'exécution, vous devez d'abord l'arrêter, exécuterdocker container stop <CONTAINER ID>
pour arrêter normalement le conteneur spécifié, s'il ne l'arrête pas pour quelque raison que ce soit, vous pouvez également l'exécuterdocker container kill <CONTAINER ID> to force shutdown of the specified container
).Troisièmement, retirez le conteneur en exécutant
docker container rm <CONTAINER ID>
.Enfin, vous pouvez exécuter
docker image ls -a
pour afficher toutes les images et supprimer celle que vous souhaitez en exécutantdocker image rm <hash>
.la source
Supprimer les images du docker>
Lister tous les conteneurs
Lister toutes les images
Arrêter le conteneur par ID de conteneur
Supprimer le conteneur par ID de conteneur
Si vous ne voulez pas arrêter et supprimer, peut forcer la suppression
Supprimer l'image
Terminé!
la source
listez toutes vos images de docker:
lister tous les conteneurs Docker existants:
supprimez tous les conteneurs ciblés, qui utilisent l'image que vous souhaitez supprimer:
supprimer l'image ciblée:
la source
Supprimer uniquement les conteneurs associés à une image spécifique
la source