5th chunk of `content/get-started/docker-concepts/building-images/using-the-build-cache.md`
55d475e5db81c52b6eb27cef73ba3bd4a46d4dfb763678b00000000100000e6c
=> [4/5] RUN yarn install --production 14.0s
=> [5/5] COPY . . 0.5s
=> exporting to image 0.6s
=> => exporting layers 0.6s
=> => writing image
sha256:d6f819013566c54c50124ed94d5e66c452325327217f4f04399b45f94e37d25 0.0s
=> => naming to docker.io/library/node-app:2.0 0.0s
```
You'll see that all layers were rebuilt. Perfectly fine since you changed the Dockerfile quite a bit.
9. Now, make a change to the `src/static/index.html` file (like change the title to say "The Awesome Todo App").
10. Build the Docker image. This time, your output should look a little different.
```console
$ docker build -t node-app:3.0 .
```
You'll then see output similar to the following:
```console
[+] Building 1.2s (10/10) FINISHED
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 37B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for docker.io/library/node:21-alpine 0.0s
=> [internal] load build context 0.2s
=> => transferring context: 450.43kB 0.2s
=> [1/5] FROM docker.io/library/node:21-alpine 0.0s
=> CACHED [2/5] WORKDIR /app 0.0s
=> CACHED [3/5] COPY package.json yarn.lock ./ 0.0s
=> CACHED [4/5] RUN yarn install --production 0.0s
=> [5/5] COPY . . 0.5s
=> exporting to image 0.3s
=> => exporting layers 0.3s
=> => writing image
sha256:91790c87bcb096a83c2bd4eb512bc8b134c757cda0bdee4038187f98148e2eda 0.0s
=> => naming to docker.io/library/node-app:3.0 0.0s
```
First off, you should notice that the build was much faster. You'll see that several steps are using previously cached layers. That's good news; you're using the build cache. Pushing and pulling this image and updates to it will be much faster as well.
By following these optimization techniques, you can make your Docker builds faster and more efficient, leading to quicker iteration cycles and improved development productivity.
## Additional resources
* [Optimizing builds with cache management](/build/cache/)
* [Cache Storage Backend](/build/cache/backends/)
* [Build cache invalidation](/build/cache/invalidation/)
## Next steps
Now that you understand how to use the Docker build cache effectively, you're ready to learn about Multi-stage builds.
{{< button text="Multi-stage builds" url="multi-stage-builds" >}}