Home·Error messages

docker · Docker

The message

failed to register layer: Error processing tar file(exit status 1): no space left on device

What it means

There is no room on the disk to unpack the image layer. Usually the project is not large; Docker is simply still holding months of old images, build cache, and volumes from containers you removed. docker system df shows how much sits in images, containers, volumes and build cache and how much of it is reclaimable, so read that before deleting anything. docker system prune removes stopped containers, dangling images, unused networks and the build cache — the next build is noticeably slower once that cache is gone — and adding --volumes also deletes volumes not attached to a container, which is exactly where people lose their databases.

The fix

docker system df
Printed by
docker
Docker
12

Docker errors only become readable once you place them in a layer — the client failing to reach the daemon, the registry refusing you, a RUN failing during the build, and a container dying the instant it starts are four different problems — and for the build and run layers the line itself is not the reason: the reason is in the output of the command that was running inside, while the cost of each fix differs by layer too.

Reading an error message

  • Read from the first line down. The lower you go the more it is about the tool’s internals; the cause is usually at the top.
  • If there is a file and a line number, start there — not the top stack frame, but the topmost line that names a file you wrote.
  • Search the message verbatim, but strip your own paths and variable names first; those are what stop the search from matching.
  • The same condition is worded differently across tool versions. If results look wrong, add the version number to the query.
  • Before pasting a fix, check what it throws away. Some of these cannot be undone.

Common questions

Q. What does “failed to register layer: Error processing tar file(exit status 1): no space left on device” mean?

There is no room on the disk to unpack the image layer. Usually the project is not large; Docker is simply still holding months of old images, build cache, and volumes from containers you removed. docker system df shows how much sits in images, containers, volumes and build cache and how much of it is reclaimable, so read that before deleting anything. docker system prune removes stopped containers, dangling images, unused networks and the build cache — the next build is noticeably slower once that cache is gone — and adding --volumes also deletes volumes not attached to a container, which is exactly where people lose their databases.

Q. How do I fix it?

docker system df — before running it, check the explanation above for what this command discards.

Q. Which tool prints this?

docker. It sits under Docker, and the message runs to 15 words.

Errors nearby