Sweepfor Mac

Apps & uninstalling

How to Properly Uninstall Docker Desktop From Your Mac

Remove Docker Desktop from your Mac including the VM disk image, network configuration, privileged helper, and the Docker CLI tools.

8 min read

Docker Desktop on Mac is more invasive than most apps — it has to be, because it runs a full Linux VM under the hood. Behind the friendly UI is a virtualized Linux kernel, an entire VM disk image (often 30–60 GB), a privileged helper for VM lifecycle and networking, kernel-level network extensions, and shell symlinks for docker, docker-compose, and friends.

If you’re switching to Colima, OrbStack, Podman, or just done with containers on this Mac, here’s the full uninstall on macOS Sonoma 14 and Sequoia 15.

Use Docker’s built-in uninstaller first

Docker Desktop includes a proper uninstaller. Use it before anything else.

  1. Open Docker Desktop.
  2. Click the bug icon (bottom-right of the dashboard) → “Uninstall.”

Or from the menu:

  1. Docker Desktop → Troubleshoot → Uninstall.

Confirm. Docker will:

  • Stop all containers
  • Shut down the VM
  • Remove the privileged helper (admin password required)
  • Remove network extensions
  • Delete the app

This handles the system-level pieces correctly. What it doesn’t do is clear all the user-level data — that’s still mostly on disk.

If Docker won’t open or the uninstaller is broken, skip to manual removal below.

Manual removal — quit Docker first

If you couldn’t use the built-in uninstaller, quit Docker first:

  1. Click the Docker whale icon in the menu bar → Quit Docker Desktop.
  2. Wait for the menu bar icon to disappear (the VM shutdown takes 10–30 seconds).

In Activity Monitor, search “docker,” “vpnkit,” “qemu,” “hyperkit” — force-quit anything still running. These are the VM and networking processes.

Drag Docker Desktop to the Trash

Open Finder → Applications. Drag “Docker” or “Docker Desktop” to the Trash. The app bundle is around 1.2 GB.

Where Docker Desktop stores data

Docker’s bundle ID is com.docker.docker. Storage paths:

User-level

  • ~/Library/Containers/com.docker.docker/ — main sandbox container
  • ~/Library/Group Containers/group.com.docker/ — shared with helpers
  • ~/Library/Application Support/Docker Desktop/ — settings, logs
  • ~/Library/Caches/com.docker.docker/ — image cache
  • ~/Library/Preferences/com.docker.docker.plist — preferences
  • ~/Library/Logs/Docker Desktop/ — diagnostic logs (often large)
  • ~/.docker/ — Docker CLI config, contexts, scout state
    • ~/.docker/config.json — registry auth, credentials
    • ~/.docker/contexts/ — Docker context configs
    • ~/.docker/buildx/ — buildx instances and cache
    • ~/.docker/scout/ — Docker Scout (image scanning) state
    • ~/.docker/desktop/ — Desktop-specific config

The VM disk image (the giant one)

This is the file that holds your container images, volumes, and everything else inside the Docker VM:

  • ~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw — the main VM disk image, often 30–60 GB
  • ~/Library/Containers/com.docker.docker/Data/log/ — VM logs
  • ~/Library/Containers/com.docker.docker/Data/task.lock — VM lock file

When you remove the Containers folder above, the VM disk image goes with it. That’s where the bulk of recovered space comes from — Docker Desktop reserves a fixed-size disk image (default 64 GB), even if you’ve only used a fraction.

System-level

  • /Library/PrivilegedHelperTools/com.docker.vmnetd — privileged networking helper
  • /Library/LaunchDaemons/com.docker.vmnetd.plist — launch daemon for the helper
  • /usr/local/bin/docker — symlink to the docker CLI
  • /usr/local/bin/docker-compose — symlink
  • /usr/local/bin/docker-credential-desktop — symlink
  • /usr/local/bin/docker-credential-osxkeychain — symlink
  • /usr/local/bin/com.docker.cli — symlink
  • /usr/local/bin/hub-tool — symlink
  • /usr/local/bin/kubectl.docker — symlink (if Kubernetes was enabled)

To remove the system-level pieces:

sudo launchctl unload /Library/LaunchDaemons/com.docker.vmnetd.plist 2>/dev/null
sudo rm -f /Library/LaunchDaemons/com.docker.vmnetd.plist
sudo rm -f /Library/PrivilegedHelperTools/com.docker.vmnetd
sudo rm -f /usr/local/bin/docker
sudo rm -f /usr/local/bin/docker-compose
sudo rm -f /usr/local/bin/docker-credential-desktop
sudo rm -f /usr/local/bin/docker-credential-osxkeychain
sudo rm -f /usr/local/bin/com.docker.cli
sudo rm -f /usr/local/bin/hub-tool
sudo rm -f /usr/local/bin/kubectl.docker

Enter your admin password when prompted.

Tip: Before removing ~/.docker/, check whether you have important Docker contexts or registry credentials there. Run docker context ls to list contexts and review ~/.docker/config.json for registry auth. If you're switching to Colima or OrbStack, those contexts can be ported over.

Skip the manual huntSweep finds every leftover preference, cache, and support file in seconds. Download Sweep free →

Login items and background

Docker adds itself to login items by default — its VM has to be running for docker commands to work, so it auto-starts.

  1. System Settings → General → Login Items & Extensions.
  2. Remove Docker entries from “Open at Login” and “Allow in the Background.”

After uninstall, these should clear automatically.

Keychain cleanup

Docker stores Docker Hub credentials, registry credentials, and Docker Desktop license info in the Keychain.

  1. Open Keychain Access.
  2. Search “Docker.”
  3. Delete matching entries — typically Docker Credentials Helper, individual registry entries (e.g., https://index.docker.io/v1/), and Docker Hub login.

If you only want to clean up your Docker Hub login (not all Docker stuff):

docker logout

Run this before uninstalling if you want to do it cleanly via the CLI.

Verify removal

After all the above, verify:

ls /Applications/ | grep -i docker
ls ~/Library/Containers/ | grep -i docker
ls /usr/local/bin/ | grep -i docker
ls /Library/PrivilegedHelperTools/ | grep -i docker
ls /Library/LaunchDaemons/ | grep -i docker

All five should return empty (or close to it). If anything’s left, it’s a path you missed in the lists above.

Let Sweep uninstall properlyDrag-to-trash leaves traces. Sweep wipes the app + support files + prefs + caches + helpers all at once. Get Sweep free →

Empty the Trash and reboot

Empty the Trash. Reboot. The reboot is important because the privileged helper runs as a launch daemon and its memory state may not fully clear without a restart.

After reboot, the VM disk image and all containers are gone. If you had volumes with persistent data (databases, etc.), those are inside the VM disk image and gone too. If you needed any of that data, you should have exported it before uninstalling — docker volume commands or container exports.

Recovered space

Disk space recovered is dramatic on a Mac that’s been doing container work for a while. Typical recovery:

  • VM disk image: 20–60 GB
  • App and support files: 2–4 GB
  • Logs and caches: 500 MB – 2 GB

Total: 25–65 GB. Possibly more if you’d configured a larger VM disk size in Docker Desktop’s settings.

Manual vs. Sweep

Docker is one of the more involved manual uninstalls because of:

  1. The privileged helper and launch daemon (admin required)
  2. Multiple shell symlinks in /usr/local/bin/
  3. The huge VM disk image inside Containers
  4. Per-CLI-tool symlinks (compose, buildx, scout, kubectl)

Docker’s own uninstaller handles most of this if you can run it. Sweep handles the user-level Library paths and the privileged helper in one pass, with admin prompted once. The shell symlinks in /usr/local/bin/ are specific to Docker and are part of Sweep’s scan for known Docker artifacts.

Reinstalling, or switching alternatives

If you reinstall Docker Desktop, download fresh from docker.com/products/docker-desktop. The clean install is healthier than reusing old state.

If you’re switching to lighter-weight alternatives:

  • OrbStack: drop-in Docker Desktop replacement, much faster on Apple Silicon
  • Colima: open-source, lima-based VM with Docker compatibility
  • Podman Desktop: redhat’s container runtime, daemonless

Each has its own install process, and each can use the same docker CLI commands you’re used to (with minor config tweaks for Colima and Podman).

That’s Docker Desktop, all its helpers, the VM, and 30+ GB of disk space, fully reclaimed. Your dev machine just got noticeably leaner.

← Back to all guides