Erreur Docker: erreur de traitement fichier tar(exit status 1): EOF inattendu

j'ai besoin d'espace et d'exécution: docker rmi $(docker images -f "dangling=true" -q)

Depuis lors, je ne peux pas avec docker-composer: docker-compose build, j'obtiens l'erreur: ERROR: Error processing tar file(exit status 1): unexpected EOF.

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

j'ai construit sur un autre système, et il a travaillé, qui suggère qu'il s'agit d'un problème de mauvais état.

une idée de ce que je devrais nettoyer?

Utilisation:

▶ 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
16
demandé sur Augustin Riedinger 2017-03-14 14:11:03

6 réponses

Il y a une construite dans la commande à supprimer les images (Version 1.13+):

docker image prune

Maintenant pour gérer la situation:

  • Arrêter Le Panneau De Service

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

  • Supprimer /var/lib/docker Attention: ceci supprimera les images, les conteneurs, les volumes,... assurez-vous de sauvegarder d'abord.

    rm -rf /var/lib/docker
    
  • démarrage du service Docker

    systemctl start docker  
    

mise à Jour:

Comme indiqué dans l'autre réponse, En somecases il peut être un fichier problème d'autorisations. Veuillez passer en revue les autorisations.

7
répondu Farhad Farahi 2017-12-12 04:50:53

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

il S'avère que j'avais un fichier avec des permissions qui ne permettait pas à l'utilisateur exécutant docker-composer de le lire. Après avoir supprimé le fichier tout était OK

32
répondu Oktav 2017-07-11 15:16:36

pour moi le problème s'est avéré qu'une traction de Docker a été accroché, donc je CTRL+c'd hors de lui et a essayé à nouveau. Même message d'erreur.

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

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

  • MAC Docker version 17.12.0-ce, build c97c6d6
1
répondu BJH 2018-02-14 02:42:15

si vous avez essayé de regarder à travers les permissions, Docker reset, docker system prune, suppression de tous les conteneurs, suppression de toutes les images (pendantes ou non), lecture de tout ce qui entoure cette question et n'ont pas eu de succès. Essayez de désinstaller docker et de réinstaller la version stable.

bien que, l'erreur avec laquelle je me débattais était:Error processing tar file(exit status 1): mkdir /some/path/name: no such file or directory

0
répondu Sheetal Kaul 2018-03-15 15:42:30

essayez d'augmenter la mémoire de Docker, il a réglé le problème pour moi.

le réglage de la mémoire du Docker dans les préférences a été réglé à 2 Go, donc en tirant l'image ~3 Go, j'ai eu exactement cette erreur:

$ 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

en augmentant la limite de mémoire, je l'ai corrigée (j'ai aussi augmenté le swap, mais je ne suis pas sûr que ce soit nécessaire ou pas).

0
répondu Rost 2018-04-11 05:04:33

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

docker-compose passe le contexte au moteur comme un fichier tar, donc, le build le commandement préparait un tar (le .dump file) à l'intérieur d'un autre fichier tar (le contexte docker), lançant ainsi un EOF inattendu sur le contexte.

comme je n'ai pas besoin de la .fichier de vidage dans le conteneur, je l'ai ajouté à mon .dossier dockerignore.

0
répondu Pablo Carbajal 2018-09-11 20:14:05