Docker is a versatile development tool that is widely used by developers to test and deploy their software and web services. Inside a Docker container, developers can include runtimes, dependencies, and other bits of code required for their software to run.
However, unlike a virtual machine, Docker shares the kernel with the host operating system, allowing for easier and more secure deployment.
Quick tip: Do you need to reinstall your Linux kernel?
Docker containers can also be shared as images, which will further simplify software distribution. Its container format is also industry-standard; thus, its compatibility is among the best.
Docker containers are usually distributed as
tar (Tape Archive) files. Files compressed with
tar can retain their permission in supported operating systems, such as Linux and macOS, and the compression ratio for
tar archives is also high, which makes it more efficient to distribute images across the Internet.
Just like other software,
tar can also fail to process archives, which results in Docker not being able to process the extracted file and throwing “Error processing
tar file” error. If you stumbled upon this article to find the solution to such an error, read on.
What Caused Docker Can’t Process the tar File?
There are a few root causes of “Error processing tar files” in Docker: Insufficient storage quota/space, file ownership, and permission issues, and corrupted archives.
Usually, Docker will state the root cause after the error. In this article, we will cover all those reasons and find the solution.
You might also want to read our guide on how to enable PHP zip extension while you’re on it.
Error processing tar file(exit status 1): no space left on device
The first reason for Docker
tar failure is related to the storage space/quota that is allowed to you. This error will be indicated by “Error processing tar file(exit status 1): no space left on device”.
Check Your Storage
If you are using a shared server, check whether your storage quota does not exceed your allowance. Or, if you are using your own machine, check your disk usage by using the command:
A list of your mapped disk partitions will appear. Ensure that you have enough space in the partition on which you wish to extract the
tar file. If necessary, clean up unused files on the partition, including residual files that are made by Docker. Reboot your server/machine and try again after freeing up space.
Error processing tar file(exit status 1): unexpected EOF
Another reason for failure related to disk space is “Error processing tar file(exit status 1): unexpected EOF”. This error message can pop up if
tar was unable to extract the files inside the archive properly.
It can also be caused by corrupted downloads. If possible, you can redownload the Docker image and verify that the downloaded file can be imported to another machine without a problem to rectify this issue.
You Might Need to Rebuild
If all else fails, you need to rebuild Docker. One caveat of rebuilding Docker is that you need to back up all containers, settings, and images.
To rebuild, issue the following command:
docker image prune
Afterward, stop Docker in systemctl by issuing the following command:
systemctl stop docker
After Docker is stopped, copy the directory
/var/lib/docker to a safe place. In this example, the folder will be copied to the user’s home folder.
cp -R /var/lib/docker /home/user/docker_backup/
Afterwards, delete the folder
/var/lib/docker with the command:
rm -rf /var/lib/docker
Then, restart docker with the command
systemctl start docker
Afterward, you can restore the backed-up images, and try restoring the image you want to deploy. However, if the error persists, you might need to look deeper into the file ownership and permission.
UNIX-based operating systems, such as Linux and macOS have complex file ownership and permission structure. It is denominated by 1 (read), 2 (write), and (4) execute, for (1) the user, (2) the group, and (4) the world.
To put it simply, if a file has the permission of 0777, it is allowed to be read, written, and executed by the user, the group, and the world.
Sometimes, when we extract the Docker archive file, we might unintentionally extract it while still logged in as
root or using
sudo. When doing so, the file will be “owned” by
root, and thus, when we go back to Docker to process the archive, it will not have sufficient privilege to read the file.
To fix this issue, run this command:
chown -R 777 /path/to/your/docker/file
Doing so will recursively change the file permissions so that they will belong to your account, and set the files to be readable, writable, and executable.
We are a bunch of people who are still continue to learn Linux servers. Only high passion keeps pushing us to learn everything.