Docker Cleanup

VerifiedCaution

Provides commands and workflows to clean up Docker containers, images, volumes, and networks. Useful for freeing disk space, removing unused or dangling resources, and troubleshooting Docker Desktop issues like unresponsive daemon or hanging commands.

Sby Skills Guide Bot
DevOpsBeginner
1506/2/2026
Claude CodeCursorWindsurfCopilotCodex
#docker#cleanup#volumes#containers#system-maintenance

Recommended for

Our review

Provides commands and workflows for cleaning up Docker resources (volumes, containers, images, networks) and troubleshooting Docker Desktop issues on macOS.

Strengths

  • Comprehensive coverage of Docker cleanup commands (volumes, containers, images, networks).
  • Includes troubleshooting for Docker Desktop on macOS (unresponsive daemon, VM issues).
  • Provides incremental safe cleanup and aggressive cleanup workflows.
  • Offers inspection commands before removal to avoid accidental data loss.

Limitations

  • Primarily focused on Docker CLI; assumes Docker is installed and accessible.
  • The troubleshooting section is specific to macOS Docker Desktop; other OS not covered.
  • Aggressive cleanup can lead to irreversible data loss if not used carefully.
When to use it

Use this skill when asked to clean up Docker resources, free disk space, or troubleshoot Docker Desktop issues like hanging commands.

When not to use it

Do not use this skill if you need to preserve specific volumes or containers without manual inspection, or if troubleshooting on non-macOS systems requires different steps.

Security analysis

Caution
Quality score88/100

The skill involves legitimate Docker cleanup operations but includes commands that can permanently delete user data (e.g., rm -rf of Docker VM files and volume pruning). While all actions are explicitly documented and intended for system maintenance, they require caution to avoid unintended data loss. No exfiltration or external payloads are present.

Findings
  • Uses rm -rf on user directories (~/Library/Containers/com.docker.docker) which can cause data loss if run incorrectly
  • Contains destructive Docker prune commands that remove volumes and images with -f flag, skipping confirmation
  • Advises factory reset which deletes all Docker data

Examples

Full system cleanup
Clean up all unused Docker resources including volumes, containers, and images.
Troubleshoot unresponsive Docker Desktop
My Docker Desktop is unresponsive, commands hang indefinitely. How do I fix it?
Remove dangling images and stopped containers
Remove all dangling images and stopped containers from Docker.

name: docker-cleanup description: Clean up Docker resources including volumes, containers, images, and networks. Use this skill when asked to "clean docker", "prune volumes", "remove unused containers", "free disk space from docker", "docker cleanup", "remove dangling images", or when troubleshooting Docker Desktop issues like unresponsive daemon, hanging commands, or VM problems. Covers volume pruning, identifying dangling/unused resources, container/image removal, Docker Desktop troubleshooting (restart procedures, VM issues), and system-wide cleanup.

Docker Cleanup

Quick Commands Reference

| Task | Command | | ------------------------- | ----------------------------------- | | List all volumes | docker volume ls | | List dangling volumes | docker volume ls -f dangling=true | | Prune unused volumes | docker volume prune | | List all containers | docker ps -a | | List stopped containers | docker ps -a -f status=exited | | Remove stopped containers | docker container prune | | List dangling images | docker images -f dangling=true | | Remove dangling images | docker image prune | | Remove all unused images | docker image prune -a | | Full system cleanup | docker system prune | | Full cleanup + volumes | docker system prune --volumes | | Nuclear option | docker system prune -a --volumes |

Troubleshooting Docker Desktop (macOS)

Symptoms of Unresponsive Docker

  • Commands hang indefinitely (no output)
  • docker info or docker ps never return
  • Docker Desktop icon shows running but CLI unresponsive

Diagnostic Steps

  1. Check if Docker processes are running:
pgrep -l -f "Docker"
  1. Check Docker socket:
ls -la /var/run/docker.sock
  1. Test basic connectivity:
docker version 2>&1

Resolution Steps

Restart Docker Desktop (GUI):

  1. Click Docker icon in menu bar
  2. Select "Restart" or "Quit Docker Desktop"
  3. Reopen Docker Desktop
  4. Wait for icon to stop animating (fully started)

Restart Docker Desktop (CLI):

# Quit Docker Desktop
osascript -e 'quit app "Docker"'

# Wait a moment
sleep 5

# Reopen Docker Desktop
open -a Docker

# Wait for startup (check with loop)
while ! docker info >/dev/null 2>&1; do
  echo "Waiting for Docker to start..."
  sleep 2
done
echo "Docker is ready"

Factory Reset (last resort):

  1. Docker Desktop > Preferences > Reset > Reset to factory defaults
  2. Warning: This removes all containers, images, and volumes

VM Issues

If Docker VM is corrupted:

# Stop Docker
osascript -e 'quit app "Docker"'

# Remove Docker VM files (careful!)
rm -rf ~/Library/Containers/com.docker.docker
rm -rf ~/Library/Group\ Containers/group.com.docker

# Restart Docker Desktop
open -a Docker

Cleanup Workflows

Safe Incremental Cleanup

Start conservative, escalate as needed:

# 1. Remove stopped containers
docker container prune -f

# 2. Remove dangling images (untagged)
docker image prune -f

# 3. Remove unused networks
docker network prune -f

# 4. Remove unused volumes (careful - data loss!)
docker volume prune -f

Aggressive Cleanup

For maximum space recovery (destructive):

# Remove everything unused: containers, networks, images, volumes
docker system prune -a --volumes -f

Inspect Before Removing

Check volume usage:

# List volumes with size (requires docker system df)
docker system df -v

# Inspect specific volume
docker volume inspect <volume_name>

Find what's using a volume:

docker ps -a --filter volume=<volume_name>

Check image layers:

docker history <image_name>

Selective Removal

Remove specific volumes:

docker volume rm volume1 volume2

Remove volumes matching pattern:

docker volume ls -q | grep "pattern" | xargs docker volume rm

Remove old containers (stopped > 24h ago):

docker container prune --filter "until=24h"

Remove images older than 7 days:

docker image prune -a --filter "until=168h"

Disk Space Analysis

# Overview of Docker disk usage
docker system df

# Detailed breakdown
docker system df -v

# Find large images
docker images --format "{{.Repository}}:{{.Tag}} {{.Size}}" | sort -k2 -h

Safety Notes

  • docker volume prune removes all volumes not attached to containers - verify important data is backed up
  • -f flag skips confirmation prompts - use carefully
  • docker system prune -a removes all unused images, not just dangling ones
  • Running containers and their resources are never affected by prune commands
Related skills