I had this issue and none of the short answers here worked, even in the page mentioned by @tudor above. I thought I would share here how I got rid of the images. I came up with the idea that dependent images must be >= the size of the parent image, which helps identify it so we can remove it.
I listed the images in size order to see if I could spot any correlations:
docker images --format '{{.Size}}\t{{.Repository}}\t{{.Tag}}\t{{.ID}}' | sort -h -r | column -t
What this does, is use some special formatting from docker to position the image size column first, then run a human readable sort in reverse order. Then I restore the easy-to-read columns.
Then I looked at the <none>
containers, and matched the first one in the list with a similar size. I performed a simple docker rmi <image:tag>
on that image and all the <none>
child images went with it.
The problem image with all the child images was actually the damn myrepo/getstarted-lab
image I used when I first started playing with docker. It was because I had created a new image from the first test image which created the chain.
Hopefully that helps someone else at some point.