web-dev-qa-db-fra.com

Docker ERROR: Erreur lors du traitement du fichier tar (état de sortie 1): inattendu EOF

J'avais besoin d'espace et exécuté: docker rmi $(docker images -f "dangling=true" -q)

Depuis lors, je ne peux pas avec docker-compose: docker-compose build, le message d'erreur suivant s'affiche: ERROR: Error processing tar file(exit status 1): unexpected EOF.

J'ai essayé de supprimer toutes les images, réinstaller docker, mais rien ne suffira: toujours la même erreur, après un certain temps.

J'ai construit sur un autre système et cela a fonctionné, ce qui suggère qu'il s'agit d'un problème d'état erroné.

Une idée de ce que je devrais nettoyer?

En utilisant:

▶ docker version
Client:
 Version:      17.03.0-ce
 API version:  1.24 (downgraded from 1.26)
 Go version:   go1.7.5
 Git commit:   3a232c8
 Built:        Tue Feb 28 08:01:32 2017
 OS/Arch:      linux/AMD64

Server:
 Version:      1.12.6
 API version:  1.24 (minimum version )
 Go version:   go1.6.2
 Git commit:   78d1802
 Built:        Tue Jan 31 23:35:14 2017
 OS/Arch:      linux/AMD64
 Experimental: false

▶ docker-compose version
docker-compose version 1.11.2, build dfed245
docker-py version: 2.1.0
CPython version: 2.7.13
OpenSSL version: OpenSSL 1.0.1t  3 May 2016
20
Augustin Riedinger

Il existe une commande intégrée pour supprimer les images inutilisées (version 1.13+):

docker image Prune

Maintenant, pour gérer la situation:

  • Arrêtez le service Docker

    systemctl stop docker
    
  • Sauvegardez /var/lib/docker puis:

  • Supprimer /var/lib/docker Attention: Ceci supprimera les images, les conteneurs, les volumes, etc. Assurez-vous de le sauvegarder en premier.

    rm -rf /var/lib/docker
    
  • Démarrer le service Docker 

    systemctl start docker  
    

Mettre à jour:

Comme indiqué dans la réponse précédente, dans certains cas, il peut s'agir d'un problème d'autorisations de fichiers. S'il vous plaît examiner les autorisations.

10
Farhad Farahi

J'ai eu le même problème et la réponse approuvée n'a pas fonctionné pour moi.

Il se trouve que j'avais un fichier avec des autorisations qui ne permettait pas à l'utilisateur de docker-compose de le lire. Après avoir supprimé le fichier, tout était OK

37
Oktav

Pour moi, le problème s’est avéré qu’un Docker Pull était suspendu. CTRL + C s’y est écarté et j’ai essayé à nouveau. Même message d'erreur. 

Finalement, j'ai trouvé des fichiers appartenant à root dans ce répertoire. Donner les autorisations appropriées aux fichiers a résolu le problème.

chown -R <username>:<group> /var/lib/docker/tmp

  • MAC Docker version 17.12.0-ce, build c97c6d6
1
BJH

Pour moi, c’était une erreur de permission… .J’ai marché contre le même problème que PR, ERROR: Error processing tar file(exit status 1): unexpected EOF Ma solution est sale mais a fonctionné pour moi.

chown -R 777 /foo/bar/project

Vous voulez presque toujours éviter de définir des autorisations sur 777, 655 est plus raisonnable.

0 = ---
1 = --x
2 = -w-
3 = -wx
4 = r-
5 = r-x
6 = rw-
7 = rwx

Une explication plus détaillée peut être trouvée ici: https://www.pluralsight.com/blog/it-ops/linux-file-permissions

0
Annihilator708

Si vous avez essayé de consulter les autorisations, réinitialiser le menu fixe, supprimer le système du menu fixe, supprimer tous les conteneurs, supprimer toutes les images (suspendues ou non), lire tout ce qui concerne le problème et qui n'a pas abouti. Essayez de désinstaller Docker et de réinstaller la version stable.

Bien que l’erreur avec laquelle je luttais était: Error processing tar file(exit status 1): mkdir /some/path/name: no such file or directory

0
Sheetal Kaul

Essayez d’augmenter la mémoire de Docker, le problème a été résolu pour moi.

Le paramètre de mémoire de Docker dans Préférences était défini sur 2 Go. Ainsi, lorsque vous extrayez l'image de ~ 3 Go, le message d'erreur suivant s'affiche: 

$ docker pull skymindops/skil-ce
latest: Pulling from skymindops/skil-ce
118c5f2883d6: Pull complete 
3d199b2e6224: Extracting [==================================================>]  2.902GB/2.902GB
failed to register layer: Error processing tar file(exit status 1): unexpected EOF

L'augmentation de la limite de mémoire a corrigé le problème (j'ai également augmenté l'échange, mais je ne savais pas s'il était nécessaire ou non).

0
Rost

Dans mon cas, le problème était un fichier .dump créé par l'un des scripts de mon projet. 

docker-compose transmet le contexte au moteur en tant que fichier tar. Par conséquent, la commande build compilait un fichier tar (le fichier .dump) dans un autre fichier tar (le contexte du menu fixe), ce qui jette un caractère inattendu EOF.

Comme je n'ai pas besoin du fichier .dump dans le conteneur, je l'ai ajouté à mon fichier .dockerignore.

0
Pablo Carbajal