Currently, CircleCI doesn’t support Docker cache very well. There is some workaround but sometimes it’s hard to use correctly.
Slightly better and easier approach is pushing your image to Docker Hub and pull the image before running docker build. In this way, you are using Docker Hub as cache store for your image.
I made docker-cache-shim to make this workflow easier for me. You can see it in action https://circleci.com/gh/kimh/docker-cache-shim/66#config
I work in CircleCI but I wrote this post and docker-cache-shim personally, so please make Github issues when you have questions/problems, but not in CircleCI support ticket. Thanks!