- Docker’s intermediate images maintenance. These are the “<none> <none>” images located in docker images -a only (these won’t show up in
docker images. These can’t really be cleaned up since they are attached to working containers. Why? It is because for each Dockerfile step, a new hash is made for intermediate layers that increase reusability, decrease disk usage, and speed up docker builds by allowing each step to be cached. So, in conclusion, it is fine to ignore these unless it is really that bothersome (look up reducing your steps but this would require a longer build time, this is a trade-off decision that is really up to whoever is in charge of code base).
- Dangling docker images. These are the “<none> <none>” you see when you type
docker images. You can use
docker rmi $(docker images -f “dangling=true" -q)to clean these up.
docker images -f “dangling=true" -qshows you all of the dangling images and rmi will remove all of them. Unfortunately, with this code, it return an error if you do not have any dangling images and would need another condition to do nothing. A solution would be to use
docker images prune -ainstead (only works for
docker versionabove 1.25). Check into
docker system pruneif you are using multiple containers, volumes and networks.