Docker Desktop on Mac can quietly consume 50-100 GB once you have pulled a few base images and worked on a couple of projects. Most of that space is dangling images, stopped containers, and unused volumes.

Short answer: run docker system prune -a in Terminal to clear unused images, containers, networks, and build cache. Run docker volume prune separately if you are sure you do not need the data volumes.

The safe default prune

  1. open Terminal
  2. run docker system prune
  3. confirm with y

That removes stopped containers, unused networks, dangling images, and dangling build cache. Running containers and the images behind them are left alone.

The aggressive prune

When the drive is really tight, run:

docker system prune -a

This removes every image that is not currently tied to a running container, not just the dangling ones. Expect to re-pull base images next time you start a project. That is fine if you have bandwidth; skip it if you are tethered or offline.

Volumes are not automatic

Volumes hold persistent data — database rows, uploaded files, anything your containers were configured to keep. docker system prune intentionally leaves them alone so you do not accidentally wipe a database.

When you are sure an old project is dead:

  1. run docker volume prune
  2. confirm with y

Docker only deletes volumes that are not attached to any container at all.

Keeping it tidy

Set a monthly reminder to run docker system prune. The one-minute habit avoids the "why is my drive full" moment six months later.

Better next routes

If Docker is tidy and the drive is still heavy, continue with How to Clear Xcode Cache and Derived Data.

For the broader framing, use the desktop cleanup FAQ.