moby: Can't remove image due to error: “Error response from daemon: reference does not exist”

I’m having a strange problem while trying to clear the images created by Docker. This is what I did:

  • Remove all containers

    $ docker rm $(docker ps -a -q)
    bb3927e956bf
    3e2eeb6287c4
    
  • Check if there is any container running or created after:

    $ docker ps -a
    CONTAINER ID    IMAGE    COMMAND    CREATED    STATUS    PORTS    NAMES
    
  • Remove all images: the first attempt failed because images were referenced

    $ docker rmi $(docker images -q)
    Error response from daemon: conflict: unable to delete 2f21ea981017 (must be forced) - image is referenced in one or more repositories
    Error response from daemon: conflict: unable to delete 2f21ea981017 (must be forced) - image is referenced in one or more repositories
    
  • Remove all images using -f option:

    $ docker rmi -f $(docker images -q)
    Untagged: dev-php55:latest
    Untagged: reynierpm/dev-php55:latest
    Deleted: sha256:2f21ea981017f65adcf0df3764756690adc35d80538bbb6dcada12990f589f37
    Deleted: sha256:7fbddc1aa50dca9bdf4f8c8033d20eca26ac00432f57333987c0eac3fe55fb08
    Deleted: sha256:15883aeb774feafa64328ea2e77ebbe17a91e79ca1cd8bb2eebca60802fb01f5
    Deleted: sha256:36ff96a995807763e302657eaeb671c000e58e3128a47f63bae543ba501387ed
    Deleted: sha256:053f436f01f809f60ecba9fb961dfb6404dce163f84fbd905eb47a6b436ba50d
    Deleted: sha256:b4525a37a105a199b7e7772de9e6ad86af645509c94c705bd13fbd422bf8f55d
    Deleted: sha256:228092e34fffbb9def7f883eceea9f37fce3750d7a7d5a7551ce009410567240
    Deleted: sha256:a17ed03e91cc4bef074258f731bba0945bcacc78c7ac9f00d88ca111125c94c0
    Deleted: sha256:6118ff18e2049d3e13a903c4163e4e4aceea9fdd30555bdd71a1e23e8d5aa022
    Deleted: sha256:b7347848822645efd3259a6c200a94c7bba15fc72b504c704e39f5db0cdca1a2
    Deleted: sha256:b23b831be841f1f3cececec3e52480723d8312b464d9a89957e867fa695a4eca
    Deleted: sha256:86c4c6d54d9dee52f8abe0ba8b3622b985bce68923dada61838b45860f000f44
    Deleted: sha256:f053241f28e7c62ac77b44ee2f69a7bd6d2bb2ccdd9f916e43b8af88f5865f90
    Deleted: sha256:3f36e15d9aac3c197472d66904fc59bd509ca36c8aa885165aadc6507f27126c
    Deleted: sha256:6586309b23369f2ccb067ca456ebacd1602787960215d7c2e898c28ae6a2e78d
    Deleted: sha256:43d7779d3bcd75a466df309735762f33552c2caf8f656ce1e26e1fd6b0324c49
    Deleted: sha256:9e060bbbad0c042fc45eb52d3e4c41bfd30fb620459f10c62cf7e483d514e1d8
    Deleted: sha256:9da9f4caedc27c128dc51d273f9d1411d6fce3f560c606fff0567d912d2d95e4
    Error response from daemon: No such image: 2f21ea981017:latest
    Error response from daemon: reference does not exist
    

Then this error: No such image: 2f21ea981017:latest comes up and I should ask, why? Where is such image? There is some kind of internal DB for Docker where it stores information?

After I run all the previous commands then I run the following and notice the output:

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              14.04.5             b1719e1db756        3 days ago          187.9 MB

But then I tried to remove the images again by running

$ docker rmi b1719e1db756
Error response from daemon: reference does not exist

And I got the same error, what I am missing here? How I can fix this?

I should add that I’ve run also the commands from this post but without success.

PS: I have made this question originally at SO but none answer yet so I move into here

About this issue

  • Original URL
  • State: closed
  • Created 8 years ago
  • Comments: 27 (13 by maintainers)

Most upvoted comments

Hi, had the same issue

what I did was replace docker.io/ with “” string in /var/lib/docker/image/devicemapper/repositories.json followed by docker rmi command and it worked.

don’t have reinstall everything again. The issue was created when I upgrade my docker client from the one provided in linux repo with the one as documented in dockerhub.

Hope this helps someone.

Then this error: No such image: 2f21ea981017:latest comes up and I should ask, why? Where is such image? There is some kind of internal DB for Docker where it stores information?

This case can probably be explained; you’re using docker images -q as the input for docker rmi, which can potentially return the same image twice (as you’ve seen in your earlier example); in such cases, it’s possible that docker untags the image; the second time, removal succeeded (Deleted: sha256:2f21ea981017f65adcf0df3764756690adc35d80538bbb6dcada12990f589f37), however, because the docker images -q returned that ID twice, you’re basically running docker rmi 2f21ea981017 2f21ea981017, so you’re trying to remove that image twice. The second time, the image is already removed (so no image with that ID is found), and docker tries to find an image by name, and appends the default (:latest) tag.

But then I tried to remove the images again by running

Not sure what happened in that case. Can you provide the output of docker info and docker version?

docker rmi -f will delete the image even if a tag references it. So you deleted b1719e1db756 even though ubuntu:14.04.5 references it. If you want to remove that tag, I believe docker rmi ubuntu:14.04.5 will work.

I think all of this behavior is as expected, though rmi behavior is consistently convoluted.