Ich brauchte Platz und führte Folgendes aus: docker rmi $(docker images -f "dangling=true" -q)
Seitdem kann ich nicht mit Docker-Compose: docker-compose build
, ich erhalte die Fehlermeldung: ERROR: Error processing tar file(exit status 1): unexpected EOF
.
Ich habe versucht, alle Bilder zu entfernen, das Docker neu zu installieren, aber es wird nichts passieren: Immer der gleiche Fehler, nach einiger Zeit.
Ich habe auf einem anderen System aufgebaut und es hat funktioniert, was schlägt vor, dass dies ein Problem mit dem falschen Zustand ist.
Irgendeine Idee was ich reinigen soll?
Mit:
▶ 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
Es gibt einen integrierten Befehl zum Entfernen nicht verwendeter Bilder (Version 1.13 und höher):
docker image Prune
Um jetzt mit der Situation fertig zu werden:
Stoppen Sie den Docker Service
systemctl stop docker
Backup /var/lib/docker
dann:
/var/lib/docker
Entfernen Achtung: Dadurch werden Images, Container, Volumes usw. entfernt.
rm -rf /var/lib/docker
Starten Sie den Docker-Dienst
systemctl start docker
Update:
Wie in der anderen Antwort erwähnt, kann es in manchen Fällen zu Problemen mit Dateiberechtigungen kommen. Bitte überprüfen Sie die Berechtigungen.
Ich hatte das gleiche Problem und die bestätigte Antwort funktionierte nicht für mich.
Es stellte sich heraus, dass ich eine Datei mit Berechtigungen hatte, die es dem Benutzer nicht erlaubte, Docker-Compose auszuführen. Nach dem Entfernen der Datei war alles in Ordnung
Für mich stellte sich das Problem heraus, dass ein Docker Pull aufgehängt wurde, also habe ich STRG + C ausgezogen und es erneut versucht. Gleiche Fehlermeldung
Am Ende fand ich in diesem Verzeichnis einige Dateien, die root gehörten. Durch die richtigen Berechtigungen für die Dateien wurde das Problem behoben.
chown -R <username>:<group> /var/lib/docker/tmp
Für mich war es ein Erlaubnisfehler. Ich ging gegen genau das gleiche Problem wie PR, ERROR: Error processing tar file(exit status 1): unexpected EOF
Meine Lösung ist schmutzig, aber für mich funktioniert
chown -R 777 /foo/bar/project
Sie möchten fast immer verhindern, dass Berechtigungen für 777 festgelegt werden. 655 ist sinnvoller.
0 = ---
1 = --x
2 = -w-
3 = -wx
4 = r-
5 = r-x
6 = rw-
7 = rwx
Eine ausführlichere Erklärung finden Sie hier: https://www.pluralsight.com/blog/it-ops/linux-file-permissions
Wenn Sie versucht haben, Berechtigungen durchzusehen, Docker-Reset, Docker-System, Löschen Sie alle Container, löschen Sie alle Bilder (baumelnd oder nicht), lesen Sie alles über das Problem und haben Sie keinen Erfolg. Deinstallieren Sie das Docker und installieren Sie die stabile Version erneut.
Der Fehler, mit dem ich zu kämpfen hatte, war: Error processing tar file(exit status 1): mkdir /some/path/name: no such file or directory
Referenz: https://medium.com/the-code-review/clean-out-your-docker-images-containers-and-volumes-with-single-commands-b8e38253c271
1. Bereinigen Sie Container, Images, Volumes und Netzwerke in Ihrem System:
Dockersystem Prune --all --force --volumes
2. docker-compose up
Versuchen Sie, den Speicher für Docker zu erhöhen. Das Problem wurde für mich behoben.
Die Docker-Speichereinstellung in den Voreinstellungen wurde auf 2 GB festgelegt. Beim Abrufen des ~ 3 GB-Bildes erhielt ich genau diesen Fehler:
$ 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
Das Speicherlimit wurde erhöht (ich habe den Swap erhöht, aber unsicher, ob er benötigt wurde oder nicht).
In meinem Fall war das Problem eine .dump-Datei, die von einem der Skripts meines Projekts erstellt wurde.
docker-compose
übergibt den Kontext als tar-Datei an die Engine. Daher packte der Befehl build
einen tar (die .dump-Datei) in eine andere tar-Datei (den Docker-Kontext) und warf daher einen unerwarteten EOF im Kontext.
Da ich die Dump-Datei nicht im Container benötige, habe ich sie meiner Dockerignore-Datei hinzugefügt.
Ich habe alles versucht, vom Neustart über die Neuinstallation von Docker bis zum Löschen von /var/lib/docker
.
Meine Ursache war eine Beschädigung des Build-Kontexts in meinem Projekt. Nachdem ich git clean
Ausgeführt habe, um das Projektverzeichnis auf den ursprünglichen Zustand zurückzusetzen, konnte ich docker-compose
.
Führen Sie git clean -iXd
Im Stammverzeichnis Ihres Projekts aus, um git clean
Interaktiv auszuführen.
Edit: Nach einer Weile ist es wieder passiert. Diesmal hat git clean
Das Problem nicht behoben. Ich bin mir ziemlich sicher, dass es nur unter Ubuntu passiert. Meine Arch-Mitarbeiter sind dem noch nie begegnet.