Docker: Alle Images und Container entfernen

English Deutsch

Problem:

Du verwendest Docker, aber die Arbeit damit hat viele Images und Container erstellt. Du möchtest alle entfernen, um Festplattenplatz zu sparen.

Lösung

Warnung: Dies wird alle deine Images und Container zerstören. Es gibt keine Möglichkeit, sie wiederherzustellen!

Führe diese Befehle in einer Shell aus:

docker_remove_all_images_containers.sh
docker rm $(docker ps -a -q)
docker rmi $(docker images -q)

Diese Lösung wurde von GitHub-Benutzer @crosbymichael in diesem Issue vorgeschlagen.

Falls du auch die Images löschen möchtest, die in Repositories referenziert werden, verwende

docker_force_remove_images.sh
docker rmi $(docker images -q) --force

Hintergrundinformationen:

Du kannst die Container auf deinem Computer mit folgendem Befehl anzeigen:

docker_container_ls.sh
docker container ls

Beispielausgabe:

docker_container_ls.txt
CONTAINER ID        IMAGE                                                     COMMAND                  CREATED             STATUS              PORTS                              NAMES
3477a4dcdce2        docker.elastic.co/elasticsearch/elasticsearch-oss:6.7.1   "/usr/local/bin/dock…"   2 days ago          Up 2 days           0.0.0.0:9200->9200/tcp, 9300/tcp   elasticsearch1
67997f002f15        appbaseio/dejavu                                          "http-server '-p 135…"   2 days ago          Up 2 days           0.0.0.0:1358->1358/tcp             dejavu

Wie man sehen kann, laufen derzeit zwei Container auf diesem Computer.

Für jeden Container zeigt die Spalte IMAGE an, auf welchem Image der Container läuft. Zum Beispiel läuft der zweite Container auf dem Image appbaseio/dejavu.

Wenn wir Docker anweisen, alle aktuell auf dem Computer gelisteten Images anzuzeigen:

docker_image_ls.txt
$ docker image ls -a
REPOSITORY                                          TAG                 IMAGE ID            CREATED             SIZE
<none>                                              <none>              39ac507bd271        11 days ago         962MB
<none>                                              <none>              6a2c829a5d4f        11 days ago         962MB
docker.elastic.co/elasticsearch/elasticsearch-oss   6.7.1               c91b419ac445        3 weeks ago         682MB
pypy                                                3                   75e018538e96        4 weeks ago         962MB
node                                                10                  64c810caf95a        4 weeks ago         899MB
appbaseio/dejavu                                    latest              47b8375dc541        2 months ago        141MB
risingstack/alpine                                  3.4-v4.4.4-3.6.1    2d384efd00ab        2 years ago         247MB

Man kann sofort sehen, dass es deutlich mehr Images als Container gibt.

Dafür gibt es vier Hauptgründe:

Um ein Image, das man nicht mehr benötigt, zu löschen, verwende den Befehl docker image rm <Image-ID>. Kopiere die Image-ID aus der Spalte IMAGE ID der Ausgabe von docker image ls wie oben gezeigt.

Um beispielsweise das Image der Version 7.0.0 von Elasticsearch zu löschen, verwende

docker_remove_specific_image.sh
$ docker image rm 0e92b9e5fe1e
Untagged: docker.elastic.co/elasticsearch/elasticsearch-oss:7.0.0
Untagged: docker.elastic.co/elasticsearch/elasticsearch-oss@sha256:e9ab1f4c2ffbc7054dab91e8dc7fd9a56d53cce734098910d876eb14849b1ba3
Deleted: sha256:0e92b9e5fe1e0949f5174ed86d9cbc3c2a041df493453f82b6c044ff78c7d17b
Deleted: sha256:c2a552806b86aba72a6e6ea5efaaa295286e8b0cf42a14d799428e58f20e7090
Deleted: sha256:71e7a706f7c03f0c7add24844f7b311edf83838ef383a877bcb94684b011893d
Deleted: sha256:d43e5d351c26273e43b11f6937cb9a3192d856b4e083acfbc14b8500056221f2
Deleted: sha256:f3a2ae77ca96f2f55300b00beedbf14ade0a27bf29c395dcbf84b5bf02ef80ad
Deleted: sha256:5d7f2d83e59c0684b4a94ab5f6479d798444bdca8fe6c813f7ef6188cdd12ce5
Deleted: sha256:cc16decd0c6f218c3a21749e747d43deced9e8929e8db0b6050dd4102301651a

Wie man der Ausgabe entnehmen kann, wird dies nicht nur das ElasticSearch-Image 0e92b9e5fe1e selbst löschen, sondern auch alle anderen Images, von denen dieses Image abhängt (die nicht auch von einem anderen Image verwendet werden).


Check out similar posts by category: Container, Docker