So bereinigen Sie den Overlay2-Docker

So bereinigen Sie den Overlay2-Docker

Ich habe einige Docker-Container auf einem Linux-Rechner laufen, die Festplattengröße des Ordners /docker/overlay2 wächst sehr schnell. Aus diesem Grund können wir keine neuen Images hochladen

Wenn ich Overlay2 nachschaue, stelle ich fest, dass es sehr alte Ebenen enthält (August 2019).

Ich habe versucht, den Docker-Datenträger mit folgendem Befehl zu bereinigen: ls -qf dangling=true | xargs -r docker volume rm docker rm -v $(sudo docker ps -a -q -f status=exited) docker system prune

Aber zurückgefordert 0B

Ebenfalls geprüfthttps://stackoverflow.com/questions/46672001/is-it-safe-to-clean-docker-overlay2

https://docs.docker.com/config/pruning/

https://success.docker.com/article/error-message-no-space-left-on-device-in-default-machine

Wie kann man das am besten reinigen?


Docker-Protokolle

Starting Oracle Net Listener.

Instanz von Oracle Database 11g Express Edition wird gestartet.

Warten auf den Start der Datenbank

SQL*Plus: Release 11.2.0.2.0 Produktion am Dienstag, 14. Juli 2020, 05:04:23

Copyright (c) 1982, 2011, Oracle. Alle Rechte vorbehalten.

Verbunden mit: Oracle Database 11g Express Edition Release 11.2.0.2.0 – 64-Bit-Produktion

SQL> Verbindung zu Oracle Database 11g Express Edition Release 11.2.0.2.0 getrennt – 64-Bit-Produktionsdatenbank gestartet /opt/ion/platform/daemon/DM_DOCKER / Daemon gestartet von /opt/ion/platform/daemon/DM_DOCKER/mkvd118p1.lx Warte auf Port 13000 bash: connect: Netzwerk ist nicht erreichbar bash: /dev/tcp/localhost/13000: Netzwerk ist nicht erreichbar Daemon auf Port 13000 gestartet / Wird ausgeführt: /startup/ansible_container_startup.sh Wird ausgeführt: /startup/cups_startup.sh Wird ausgeführt: /startup/samba_startup.sh Wird ausgeführt: /startup/start_check_mk_agent.sh

Docker-Diff Fehlerantwort vom Daemon: mkdir /docker/overlay2/f033daa6d065ff85484b54fcd9a7786f839917d180129ea8fed0f627ad776095-init/merged: kein Platz mehr auf dem Gerät

Docker ps -a

Docker-Volumen ls

Docker-Bilder

Antwort1

Die typische Antwort der meisten Leute, wenn overlay2 zu groß ist, ist, eine Bereinigung auszuführen, bei der gestoppte Container und Bilder gelöscht werden, deren Tag entfernt wurde (durch ein neueres Tag ersetzt). Das ist erledigt docker pruneund es gibt andere Optionen für diesen Befehl, um weitere Daten zu löschen. Weitere Einzelheiten zum Bereinigen dieses Ordners im Allgemeinen finden Sie unter "Ist es sicher, Docker/Overlay2/ zu bereinigen?".

Wenn das Problem darin besteht, dass der /var/lib/docker/containersOrdner wächst, würde ich vermuten, dass Protokolle in stdout/stderr geschrieben werden, und es gibtverschiedene Möglichkeiten, das zu bereinigen und übermäßige Protokolle in der Zukunft zu verhindern.

Wenn jedoch bei diesem Problem die Größe des Ordners overlay2 schnell zunimmt, wenn Sie einen Container starten, schreibt dieser Container höchstwahrscheinlich in das mit diesem Container verknüpfte Lese-/Schreibdateisystem. Jede Änderung an einer Datei löst ein Copy-on-Write in die containerspezifische Ebene aus. Sie können anhand docker container diffder spezifischen Container-ID diagnostizieren, welche Dateien erstellt oder geändert werden. In Ihrer Situation scheint dies schnell genug zu geschehen, um Ihr Laufwerk zu füllen, sodass Ihr Computer möglicherweise nicht über die Kapazität verfügt, diesen Container zu debuggen oder auszuführen. Sie sind also möglicherweise gezwungen, dies auf einem Computer mit mehr Kapazität zu debuggen.

Antwort2

Sie können verwenden docker image prune -a, um unbrauchbare Bilder zu entfernen.

verwandte Informationen