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
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.
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
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
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
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).
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.