Images auflisten und entfernen
Während der Arbeit mit Docker werden sich mit der Zeit viele Images ansammeln. Es ist wichtig zu wissen, wie man diese verwaltet, also wie man sie auflistet und nicht mehr benötigte Images löscht.
Beginnen wir mit dem Auflisten aller Images auf Ihrem System:
docker images
Sie sollten eine Liste aller bisher abgerufenen Images sehen, einschließlich Nginx und der Python-Images.
Angenommen, wir möchten das Python 3.7 Image entfernen, um Speicherplatz freizugeben. Dies geschieht mit dem Befehl docker rmi (rmi steht für "remove image"):
docker rmi python:3.7
Wenn der Befehl erfolgreich ist, sehen Sie eine Ausgabe wie diese:
Untagged: python:3.7
Untagged: python@sha256:1f93c63...
Deleted: sha256:1f1a7b57...
Deleted: sha256:8c75ecde...
...
Es kann jedoch vorkommen, dass Sie stattdessen eine Fehlermeldung erhalten:
Error response from daemon: conflict: unable to remove repository reference "python:3.7" (must force) - container <container_id> is using its referenced image <image_id>
Dieser Fehler tritt auf, wenn noch ein Container (egal ob laufend oder gestoppt) existiert, der auf Basis dieses Images erstellt wurde. Docker verhindert das Löschen von Images, die noch in Gebrauch sind, um die Systemintegrität zu wahren.
Um dies zu beheben, müssen wir zuerst alle Container entfernen, die dieses Image nutzen. Listen wir alle Container auf (auch die gestoppten):
docker ps -a
Suchen Sie nach Containern, die aus dem Image python:3.7 erstellt wurden. Wenn Sie welche finden, entfernen Sie diese mit dem Befehl docker rm:
docker rm <container_id>
Ersetzen Sie <container_id> durch die tatsächliche ID des Containers, den Sie löschen möchten.
Versuchen Sie nun erneut, das Image zu entfernen:
docker rmi python:3.7
Diesmal sollte es funktionieren.
Überprüfen wir, ob das Image entfernt wurde, indem wir die Python-Images erneut auflisten:
docker images python
Das Image Python 3.7 sollte nicht mehr in der Liste erscheinen.