failed to register layer: no space left on device
Fixes 'failed to register layer: no space left on device' during docker pull. Use when image pulls fail unpacking layers because the docker data disk is full. Not for build-time temp space failures.
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
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 deviceFix it
- Check docker disk usage:
docker system df Expected: Images row large with high reclaimable.
- Remove unused images:
docker image prune -a Expected: deletes images not referenced by any container.
- Retry the pull:
docker pull [image] Expected: layers register cleanly.
When this applies
docker pullfailing 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 pullof 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.
Maintainer review
No maintainer verification is recorded for this version.
This records the version a maintainer checked. It does not assert that the version is the latest upstream release.