Je veux supprimer le conteneur sur 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)
je veux 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?
S'il vous plaît aider
Tout d'abord, supprimez les noms de conteneur
$ Sudo docker rm backstabbing_ritchie
Le résultat
$ Sudo docker rm backstabbing_ritchie
backstabbing_ritchie
supprimer la deuxième partie, qui est répertoriée sur le conteneur à supprimer
$ Sudo docker rm drunk_feynman
drunk_feynman
Deuxièmement, retirez le conteneur
$ Sudo docker rmi training/webapp
Le résultat
$ Sudo docker rmi training/webapp
Untagged: training/webapp:latest
Deleted: 54bb4e8718e8600d78a5d7c62208c2f13c8caf0e4fe73d2bc0e474e93659c0b5
Deleted: f74dd040041eb4c032d3025fe38ea85de8075992bdce6789b694a44b20feb8de
Deleted: 7cbae69141977b99c44dc6957b032ad50c1379124d62b7d7d05ab7329b42348e
Deleted: abb991a4ed5e4cde2d9964aec4cccbe0015ba9cc9838b696e7a32e1ddf4a49bd
Deleted: 1952e3bf3d7e8e6a9b1e23bd4142e3c42ff7f4b7925122189704323593fd54ac
Deleted: f95ebd363bf27a7546deced7a41a4099334e37a3d2901fa3817e62bb1ade183f
Deleted: 20dd0c75901396d41a7b64d551ff04952084cc3947e66c67bae35759c80da338
Deleted: 2505b734adda3720799dde5004302f5edb3f2a2ff71438f6488b530b728ba666
Deleted: 2ee0b8f351f753f78f1178000ae37616eb5bf241d4ef041b612d58e1fd2aefdc
Deleted: 2ce633e3e9c9bd9e8fe7ade5984d7656ec3fc3994f05a97d5490190ef95bce8d
Deleted: 98b15185dba7f85308eb0e21196956bba653cf142b36dc08059b3468a01bf35d
Deleted: 515565c29c940355ec886c992231c6019a6cffa17ff1d2abdfc844867c9080c5
Deleted: 2880a3395eded9b748c94d27767e1e202f8d7cb06f1e40e18d1b1c77687aef77
Vérifier le continer
$ Sudo docker ps -as
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES SIZE
78479ffeba5c ubuntu "/bin/bash" 43 hours ago Exited (0) 43 hours ago sharp_wescoff 81 B (virtual 187.7 MB)
Il y a une différence entre les images de docker et les conteneurs de docker. Vérifiez ceci SO Question .
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.
Docker ps -a # Lists containers (and tells you which images they are spun from)
Docker images # Lists images
Docker rm <container_id> # Removes a container
Docker rmi <image_id> # Removes an image
# Will fail if there is a running instance of that image i.e. container
Docker rmi -f <image_id> # Forces removal of image even if it is referenced in multiple repositories,
# i.e. same image id given multiple names/tags
# Will still fail if there is a docker container referencing image
Mise à jour pour Docker 1.13+ [depuis janvier 2017]
Dans Docker 1.13, nous avons regroupé chaque commande pour la placer sous l’objet logique avec lequel elle interagit.
En gros, les commandes ci-dessus pourraient également être réécrites, plus clairement, comme suit:
docker container ls
docker image ls
docker container rm <container_id>
docker image rm <image_id>
vous pouvez utiliser l’option -f
pour forcer la suppression des conteneurs.
Sudo docker rmi -f training/webapp
Vous pouvez arrêter les conteneurs en utilisant Sudo docker stop training/webapp
avant de supprimer
Si vous souhaitez nettoyer les images et les conteneurs du menu fixe
ATTENTION: cela va tout vider
arrêter tous les conteneurs
docker stop $(docker ps -a -q)
enlever tous les conteneurs
docker rm $(docker ps -a -q)
supprimer toutes les images
docker rmi -f $(docker images -a -q)
Si vous avez lancé plusieurs conteneurs de menu fixe, utilisez cette option.
$ 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
Vous remarquerez qu'il s'agit d'une question vieille de deux ans, mais je souhaite tout de même partager ma solution de contournement pour cette question particulière:
Tout d’abord, exécutez docker container ls -a
pour répertorier tous les conteneurs que vous possédez 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 l’arrêter d’abord, exécutez docker container stop <CONTAINER ID>
pour arrêter en douceur le conteneur spécifié, s’il ne l’arrête pas quelle que soit la raison, vous pouvez également exécuter docker container kill <CONTAINER ID> to force shutdown of the specified container
).
Troisièmement, supprimez 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 de votre choix en exécutant docker image rm <hash>
.