I want to remove the container at Docker, but an error occurs when you want to delete
My next step before removing the container, see the list of existing container
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)
one I want to delete the list, namely «training / webapp»
but an error that occurred
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]
Whether the container is running in the images?
Please help
Mark Chorley
2,0872 gold badges22 silver badges29 bronze badges
asked Nov 25, 2015 at 3:06
0
There is a difference between docker images and docker containers. Check this SO Question.
In short, a container is a runnable instance of an image. which is why you cannot delete an image if there is a running container from that image. You just need to delete the container first.
docker ps -a # Lists containers (and tells you which images they are spun from)
docker images # Lists images
docker rm <container_id> # Removes a stopped container
docker rm -f <container_id> # Forces the removal of a running container (uses SIGKILL)
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
Update for Docker 1.13+ [Since Jan 2017]
In Docker 1.13, we regrouped every command to sit under the logical object it’s interacting with
Basically, above commands could also be rewritten, more clearly, as:
docker container ls -a
docker image ls
docker container rm <container_id>
docker image rm <image_id>
Also, if you want to remove EVERYTHING you could use:
docker system prune -a
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all unused images
- all build cache
answered Oct 27, 2016 at 11:43
Ahmad AbdelghanyAhmad Abdelghany
11.2k5 gold badges40 silver badges35 bronze badges
9
First, remove the container names
$ sudo docker rm backstabbing_ritchie
The result
$ sudo docker rm backstabbing_ritchie
backstabbing_ritchie
delete the second part, which is listed on the container to be deleted
$ sudo docker rm drunk_feynman
drunk_feynman
Second, remove the container
$ sudo docker rmi training/webapp
The result
$ 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
Check the 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)
answered Nov 25, 2015 at 3:21
YudayYuday
3,9914 gold badges16 silver badges23 bronze badges
3
If you want to cleanup docker images and containers
CAUTION: this will flush everything
stop all containers
docker stop $(docker ps -a -q)
remove all containers
docker rm $(docker ps -a -q)
remove all images
docker rmi -f $(docker images -a -q)
answered May 4, 2018 at 11:06
quAntonquAnton
7566 silver badges10 bronze badges
1
you can use -f
option to force delete the containers .
sudo docker rmi -f training/webapp
You may stop the containers using sudo docker stop training/webapp
before deleting
answered Nov 25, 2015 at 3:19
2
If you have multiples docker containers launched, use this
$ docker rm $(docker ps -aq)
It will remove all the current dockers listed in the «ps -aq» command.
Source : aaam on https://github.com/docker/docker/issues/12487
answered Jun 21, 2016 at 15:20
gaelgael
7636 silver badges16 bronze badges
1
1-Stop running container:
docker stop <container-id>
2-Remove container
docker rm <container-id>
3-Remove docker image
docker rmi <image-id>
answered Jun 22, 2021 at 20:52
Ahmet ArslanAhmet Arslan
4,9921 gold badge31 silver badges34 bronze badges
1
list all your docker images:
docker images
list all existed docker containers:
docker ps -a
delete all the targeted containers, which is using the image that you want to delete:
docker rm <container-id>
delete the targeted image:
docker rmi <image-name:image-tag or image-id>
answered Jun 11, 2020 at 11:14
Noticed this is a 2-years old question, but still want to share my workaround for this particular question:
Firstly, run docker container ls -a
to list all the containers you have and pinpoint the want you want to delete.
Secondly, delete the one with command docker container rm <CONTAINER ID>
(If the container is currently running, you should stop it first, run docker container stop <CONTAINER ID>
to gracefully stop the specified container, if it does not stop it for whatever the reason is, alternatively you can run docker container kill <CONTAINER ID> to force shutdown of the specified container
).
Thirdly, remove the container by running docker container rm <CONTAINER ID>
.
Lastly you can run docker image ls -a
to view all the images and delete the one you want to by running docker image rm <hash>
.
answered Mar 27, 2018 at 22:49
User3301User3301
953 silver badges8 bronze badges
Deleting «network not found» in docker
Inspect the network which we are unable to delete
docker network inspect [<id> or <name>]
Disconnect the network
docker network disconnect -f [<networkID> or <networkName>] [<endpointName> or <endpointId>]
Delete unused networks
docker network prune
answered Mar 10, 2021 at 14:10
Jinna BaluJinna Balu
6,07936 silver badges45 bronze badges
Remove docker images >
List all containers
docker container ls
List all images
docker image ls
Stop container by container id
docker container stop <container_id>
Remove container by container id
docker container rm <container_id>
If don’t want stop and remove, can force remove
docker container rm -f <container_id>
Remove image
docker image rm <image_id>
Done!
keikai
13.2k8 gold badges47 silver badges67 bronze badges
answered Dec 9, 2019 at 21:27
Remove just the containers associated with a specific image
docker ps -a | grep training/webapp | cut -d ' ' -f 1 | xargs docker rm
- ps -a: list all containers
- grep training/webapp : filter out everything but the containers started from the training/webapp image
- cut -d ‘ ‘ -f 1: list only the container ids (first field when delimited by space)
- xargs docker rm : send the container id list output to the docker rm command to remove the container
answered Feb 5, 2020 at 6:35
AndrewDAndrewD
4,7013 gold badges29 silver badges31 bronze badges
Simply these two commands solve my issue.
Stop the particular container.
docker stop <container_id>
Forces removal of the image even if it is referenced in multiple repositories.
docker rmi -f <container_id>
answered Jan 16 at 17:23
I have a bunch of test images on my host i use.
**docker rmi docker images |grep "hello-world" | awk '{print $1}'**
to delete one image.on excution, i got error.
Error response from docker daemon :Error response from daemon: conflict: unable to remove repository reference «hello-world» (must force) — container 3061de2e8c9c is using its referenced image 690ed74de00f
docker ps | grep 3061de2e8c9c
on which i got nothing.
docker attach 3061de2e8c9c
on which i got error: You cannot attach to a stopped container, start it first.
So there is no active containers, then why i could not delete the image?
because you have stopped container, please use
docker ps -a
to see all containers
maybe https://docs.docker.com/ is good place for you learn
closing, because (as @HackToday explained), this is not a bug
you can remove it force
such as
docker rmi -f 2234oi23u4io2
smile-magic, mulfyx, ronnyDevelop, thedarkcoderrises, xditx32, and DeNIKE666 reacted with heart emoji
Using --force
to remove an image that’s in use by a container is not really recommended. Remove the container if it’s no longer needed.
@thaJeztah — I’m getting similar myself (found this thread via google search).
Please see steps to diagnose after attempting docker rmi IMAGENAME and receiving message:
~$ docker rmi e5d9538a77db
Error response from daemon: conflict: unable to delete e5d9538a77db (must be forced) — image is referenced in multiple repositories
~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
~$ docker ps -a -q
~$
As you can see no running containers yet the images can’t be deleted. I’m on a Mac running Docker Toolbox
@ljavierrivera different error message;
image is referenced in multiple repositories
Which means you’re trying to remove an image by its ID
, however the image is tagged under multiple names. Docker then refuses to remove the image, because it would remove multiple image in a single remove. You can still remove the individual images by name. If you don’t have containers running, you can --force
delete the image in that case.
However, using the docker image prune
functionality that was added recently may be a better option.
get it. docker rmi -f ${docker id}
Yes, the command docker image prune
worked for me followed by docker rmi ...
I receive this error Error response from daemon: conflict: unable to delete b472d6a9286d (cannot be forced) - image is being used by running container 8c2009966994
.
If I stop all the containers built on this image and then they spin up again very fast due to my docker-compose.yml
.
version: "3" services: web: # replace username/repo:tag with your name and image details image: ndabas333/hola:newtest deploy: replicas: 5 resources: limits: cpus: "0.1" memory: 50M restart_policy: condition: on-failure ports: - "80:80" networks: - webnet networks: webnet:
This image doesn’t exist on my registry now so help me to delete it along with the containers.
Use the below command to remove it:
docker rmi --force DOCKER_IAMGE_NAME
The problem
When you are trying to remove a Docker Image, you get an error as shown below.
# docker rmi d123f4e55e12 Error response from daemon: conflict: unable to delete d123f4e55e12 (cannot be forced) - image is being used by running container 0f1262bd1285
For this error to occur, there must be a container on the system that is dependent on the image. The error reports which container is using the image, remove the container before removing the image.
Solution
1. You have several Docker images pulled from the docker hub on to your Docker node. And you want to delete the centos image from the docker node.
# docker images REPOSITORY TAG IMAGE ID CREATED SIZE fedora latest 422dc563ca32 3 days ago 252MB ubuntu latest dd6f76d9cc90 13 days ago 122MB hello-world latest 725dcfab7d63 2 weeks ago 1.84kB centos latest d123f4e55e12 2 weeks ago 197MB
2. To find which container is using the centos Image, use the below command.
# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0f1262bd1285 centos "/bin/bash" 5 minutes ago Up 5 minutes dreamy_gates
As you can see in the output above, the Docker container “dreamy_gates” is using our centos image.
3. First we need to stop the container “dreamy_gates”. To do so use the command below:
# docker stop 0f1262bd1285 0f1262bd1285
4. Now you can delete the Docker container.
# docker rm 0f1262bd1285 0f1262bd1285
5. And finally, you can delete the docker image for centos.
# docker rmi d123f4e55e12 Untagged: centos:latest Untagged: centos@sha256:4565fe2dd7f4770e825d4bd9c761a81b26e49cc9e3c9631c58cfc3188be9505a Deleted: sha256:d123f4e55e1200156d9cbcf4421ff6d818576e4f1e29320a408c72f022cfd0b1 Deleted: sha256:cf516324493c00941ac20020801553e87ed24c564fb3f269409ad138945948d4
6. Verify that the image is deleted using the command “docker images”.