TL;DR: The pull downloaded fine but there is nowhere to unpack it. Run `docker system prune -a` to delete unused images (the layers of images you are not running are the usual hog), then pull again. Verify with `docker system df` before and after.

## The error

```text
failed to register layer: Error processing tar file(exit status 1): write /usr/lib/x86_64-linux-gnu/libc.so.6: no space left on device
```

## Fix it

1. Check docker disk usage:
   `docker system df`
   Expected: Images row large with high reclaimable.
2. Remove unused images:
   `docker image prune -a`
   Expected: deletes images not referenced by any container.
3. Retry the pull:
   `docker pull [image]`
   Expected: layers register cleanly.

## When this applies
- `docker pull` failing at the extract step
- Hosts that pull many image versions over time

## When this does NOT apply
- Build failures (build temp space, separate skill)
- "no space" on the HOST root from non-docker files

## Versions
All Docker versions.

## Why it happens
Pulls download compressed layers then extract them, transiently needing roughly 2x the image size. Registration writes into /var/lib/docker; when it is full the tar extraction aborts mid-layer.

## Edge cases
- Dangling build cache (`docker builder prune`) can dwarf image usage on build hosts.
- `docker pull` of a huge image on a small disk may never fit; use a slimmer tag (alpine/slim variants).
- Thin-provisioned VM disks: the guest sees free space the host already reclaimed; expand the virtual disk.
