Solving Docker Error Processing tar File

DigitalOcean Referral Badge
Start your VPS now with FREE $100 credit.

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:

df -h

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.

READ:  How To Install ionCube Loader on VestaCP

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.

READ:  kex_exchange_identification read connection reset by peer Causes & Solution

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.

Leave a Comment