Geekflare wird von unserem Publikum unterstützt. Es kann sein, dass wir durch den Kauf von Links auf dieser Seite Affiliate-Provisionen verdienen.
Unter DevOps Zuletzt aktualisiert: September 24, 2023
Weitergeben:
Invicti Web Application Security Scanner - die einzige Lösung, die eine automatische Überprüfung von Schwachstellen mit Proof-Based Scanning™ ermöglicht.

Docker ist eine bekannte Plattform, mit der Sie Ihre Anwendungen in Form von Containern verwalten und ausliefern können, die das Betriebssystem und abhängige Bibliotheken zusammen mit Ihrer Anwendung verpacken.

Wir werden uns mit der Verwaltung von Docker-Images befassen und dabei vor allem auf die Möglichkeiten eingehen, Docker-Bilder aufzulisten und die erforderlichen Informationen zu erhalten, um darauf aufbauend ein oder mehrere Bilder effizient zu entfernen

Fangen wir auch an

Auflisten von Docker-Bildern

Um gezogene Docker-Images aufzulisten, verwenden Sie

abhisheknair@geekflare:~$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest aa4d65e670d6 9 days ago 105MB
mysql latest c60d96bd2b77 10 days ago 514MB
ubuntu latest c29284518f49 2 weeks ago 72.8MB

nginx

latest 4cdc5dd7eaad vor 3 Wochen 133MB
hello-world latest d1165f221234 vor 4 Monaten 13.3kB
redis 4.0 191c4017dcdd vor 15 Monaten 89.3MB
abhisheknair@geekflare:~$

Wie andere Docker-Befehle auch, unterstützt es den Befehl images mit mehreren Optionen

 $ docker images [OPTIONS] [REPOSITORY[:TAG]]

Wenn Sie docker images ohne Optionen ausführen, zeigt es Ihnen die Top-Level-Images wie docker image ls, deren Repository und Tags sowie deren Größe auf der Festplatte an

abhisheknair@geekflare:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest c60d96bd2b77 10 days ago 514MB
ubuntu latest c29284518f49 2 weeks ago 72.8MB

nginx

latest 4cdc5dd7eaad vor 3 Wochen 133MB
hello-world latest d1165f221234 vor 4 Monaten 13.3kB
redis 4.0 191c4017dcdd vor 15 Monaten 89.3MB
abhisheknair@geekflare:~$

Diese Bilder haben Zwischenschichten, die die Benutzerfreundlichkeit erhöhen, den Erstellungsprozess beschleunigen und die Festplattenauslastung reduzieren, was im obigen Befehl nicht angezeigt wird. Die GRÖSSE ist der kombinierte Speicherplatz, der das Image und alle seine übergeordneten Images aufnimmt. Wenn Sie den Inhalt des Abbilds als Tar-Datei speichern, wenn Sie ein Abbild mit Docker speichern, entspricht dies dieser aufgelisteten Größe

Ein Bild wird mehrfach aufgelistet, wenn es mehrere Repository-Namen oder Tags hat, obwohl das einzelne Bild, das durch seine IMAGE ID identifiziert wird, die SIZE nur einmal verwendet

Neueste Bilder auflisten

abhisheknair@geekflare:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest c60d96bd2b77 Vor 10 Tagen 514MB
ubuntu latest c29284518f49 Vor 2 Wochen 72.8MB

nginx

latest 4cdc5dd7eaad vor 3 Wochen 133MB
hello-world latest d1165f221234 vor 4 Monaten 13.3kB
redis 4.0 191c4017dcdd vor 15 Monaten 89.3MB
abhisheknair@geekflare:~$

Bilder nach Repository und Tag auflisten

Um alle Bilder aufzulisten, die zu einem bestimmten Repository gehören, geben Sie den Namen des Repositorys an

abhisheknair@geekflare:~$ docker images redis
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest aa4d65e670d6 9 days ago 105MB
redis 4.0 191c4017dcdd 15 months ago 89.3MB
abhisheknair@geekflare:~$

Sie können zusätzlich den Namen des Repositorys mit einem Tag angeben, um eine besser gefilterte Ausgabe zu erhalten.

abhisheknair@geekflare:~$ docker images redis:4.0
REPOSITORY TAG IMAGE ID CREATED SIZE
redis 4.0 191c4017dcdd 15 months ago 89.3MB
abhisheknair@geekflare:~$

Bild-IDs in voller Länge auflisten

Um alle Bilder aufzulisten, ohne die IMAGE ID abzuschneiden, verwenden Sie

abhisheknair@geekflare:~$ docker images --no-trunc
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest sha256:aa4d65e670d6518e5da96ca9d1a76370a942970a8802e6d5cc6bcf058ab12ca7 9 days ago 105MB
mysql latest sha256:c60d96bd2b771a8e3cae776e02e55ae914a6641139d963defeb3c93388f61707 vor 10 Tagen 514MB
ubuntu latest sha256:c29284518f497b8c5f49933e74e43ca5221e69c8251e780427f7d12f716625ff vor 2 Wochen 72.8MB
nginx aktuell sha256:4cdc5dd7eaadff5080649e8d0014f2f8d36d4ddf2eff2fdf577dd13da85c5d2f 3 Wochen her 133MB
hello-world aktuell sha256:d1165f2212346b2bab48cb01c1e39ee8ad1be46b87873d9ca7a4e434980a7726 4 Monate her 13.3kB
redis 4.0 sha256:191c4017dcdd3370f871a4c6e7e1d55c7d9abed2bebf3005fb3e7d12161262b8 15 Monate her 89.3MB
abhisheknair@geekflare:~$

Image Digests auflisten

Docker-Images, die das Format v2 oder höher verwenden, haben eine inhaltsadressierbare Kennung, die als Digest bezeichnet wird. Um Image-Digest-Werte aufzulisten, verwenden Sie das Flag --digest wie folgt

abhisheknair@geekflare:~$ docker images --digests
REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE
redis latest sha256:cd0c68c5479f2db4b9e2c5fbfdb7a8acb77625322dd5b474578515422d3ddb59 aa4d65e670d6 9 days ago 105MB
mysql latest sha256:8b928a5117cf5c2238c7a09cd28c2e801ac98f91c3f8203a8938ae51f14700fd c60d96bd2b77 vor 10 Tagen 514MB
ubuntu latest sha256:b3e2e47d016c08b3396b5ebe06ab0b711c34e7f37b98c9d37abe794b71cea0a2 c29284518f49 2 Wochen her 72.8MB
nginx latest sha256:c5aab9d8e259d54af91e0548abf1fa8188a43079eb86b6ba8df9f482a5380720 4cdc5dd7eaad Vor 3 Wochen 133MB
hello-world latest sha256:df5f5184104426b65967e016ff2ac0bfcd44ad7899ca3bbcf8e44e4461491a9e d1165f221234 4 Monate her 13.3kB
redis 4.0 sha256:2e03fdd159f4a08d2165ca1c92adde438ae4e3e6b0f74322ce013a78ee81c88d 191c4017dcdd 15 Monate her 89.3MB
abhisheknair@geekflare:~$

Mit einer 2.0-Registrierung können Sie diese Digests mit den Befehlen push, pull, create, run und rmi verwenden. Dies funktioniert auch mit dem Befehl FROM in einer Dockerdatei

Filtern der Ausgabe

der Docker-Befehl unterstützt das Filtern von Images mit der Flagge --filter. Die derzeit unterstützten Filter sind

  • baumelnd (boolescher Wert - wahr oder falsch)
  • Etikett(label=<key> oder label=<key>=<value>)
  • vor(<Bildname>[:<Tag>], <Bild-ID> oder <Bild@Digest>)- filtert Bilder, die vor der angegebenen ID oder den Referenzen erstellt wurden
  • da (<Bildname>[:<Tag>], <Bild-ID> oder <Bild@Digest>)- filtert Bilder, die seit der angegebenen ID oder Referenzen erstellt wurden
  • referenz (Muster einer Bildreferenz) - filtert Bilder, deren Referenz mit dem angegebenen Muster übereinstimmt

Außerdem können Sie mehrere Filter verwenden, indem Sie sie wie folgt kombinieren

$ docker images --filter "<key1>=<value1>" --filter"<key2>=<value2>"

Beispiel

abhisheknair@geekflare:~$ docker images --filter "before=redis" --filter "since=hello-world"
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest c60d96bd2b77 10 days ago 514MB
ubuntu latest c29284518f49 2 weeks ago 72.8MB

nginx

aktuellste 4cdc5dd7eaad vor 3 Wochen 133MB
abhisheknair@geekflare:~$

Formatierung der Ausgabe

docker-Images unterstützen die Formatierung von Ausgaben, die für die Verschachtelung mit anderen Befehlen, für Skripte oder für andere Zwecke benötigt werden. Dies sind die unterstützten Platzhalter für das --format Flagge

Platzhalter Beschreibung
.ID Bild-ID
.repository Bild-Repository
.Tag Bild-Tag
.Digest Bild-Digest
.CreatedSince Verstrichene Zeit seit der Erstellung des Bildes
.CreatedAt Die Zeit, zu der das Bild erstellt wurde
.Größe Größe des Image-Datenträgers

Als Beispiel gibt der folgende Befehl die Ausgabe ohne Header aus und gibt die ID und das Repository getrennt durch einen Doppelpunkt ( : ) für alle Bilder aus

abhisheknair@geekflare:~$ docker images --format "{{.ID}}: {{.Repository}}"

aa4d65e670d6

: redis

c60d96bd2b77

: mysql

c29284518f49

: ubuntu

4cdc5dd7eaad

: nginx

d1165f221234

: hello-world
191c4017dcdd: redis
abhisheknair@geekflare:~$

Oder um alle Bilder mit ihrem Repository und Tag in einem Tabellenformat aufzulisten, können Sie verwenden

abhisheknair@geekflare:~$ docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"

IMAGE

ID REPOSITORY TAG

aa4d65e670d6

redis latest

c60d96bd2b77

mysql latest

c29284518f49

ubuntu latest

4cdc5dd7eaad

nginx latest

d1165f221234

hello-world latest
191c4017dcdd redis 4.0
abhisheknair@geekflare:~$

Entfernen von Docker Images

Um ein oder mehrere Docker-Images aus dem System zu entfernen, verwenden wir

$ docker image rm [OPTIONEN] IMAGE [IMAGE...]

Um ein einzelnes Bild zu entfernen, geben Sie einfach den Namen des Bildes an

abhisheknair@geekflare:~$ docker image rm redis
Unmarkiert: redis:latest
Unmarkiert: redis@sha256:cd0c68c5479f2db4b9e2c5fbfdb7a8acb77625322dd5b474578515422d3ddb59
Gelöscht: sha256:aa4d65e670d6518e5da96ca9d1a76370a942970a8802e6d5cc6bcf058ab12ca7
Gelöscht: sha256:3bd00d38f5ca70200050477c527cc60cfdf82911d6fe03932e2bcae31a95cfa2
Gelöscht: sha256:22722fde392d188cfbe5bbd0c2451cc71cf5b000afc0e5114c1066bb5e113ec9
Gelöscht: sha256:38212b55ef525e86cd726cd83c1a82a6009c68d24771d6e93d439fdc88e66f0e
Gelöscht: sha256:188c498579cef37b65a93d6448c6b129fa07d5740fc213a18843ff22d80cd10d
Deleted: sha256:2117165cd53c98f13ec7af36c9d8acd239fc541c847efaccb49885decf615d68
abhisheknair@geekflare:~$

Oder um mehrere Bilder zu entfernen, geben Sie mehrere durch Leerzeichen getrennte Bildnamen an

abhisheknair@geekflare:~$ docker image rm redis mariadb
Untagged: redis:latest
Untagged: redis@sha256:cd0c68c5479f2db4b9e2c5fbfdb7a8acb77625322dd5b474578515422d3ddb59
Gelöscht: sha256:aa4d65e670d6518e5da96ca9d1a76370a942970a8802e6d5cc6bcf058ab12ca7
Gelöscht: sha256:3bd00d38f5ca70200050477c527cc60cfdf82911d6fe03932e2bcae31a95cfa2
Gelöscht: sha256:22722fde392d188cfbe5bbd0c2451cc71cf5b000afc0e5114c1066bb5e113ec9
Gelöscht: sha256:38212b55ef525e86cd726cd83c1a82a6009c68d24771d6e93d439fdc88e66f0e
Gelöscht: sha256:188c498579cef37b65a93d6448c6b129fa07d5740fc213a18843ff22d80cd10d
Gelöscht: sha256:2117165cd53c98f13ec7af36c9d8acd239fc541c847efaccb49885decf615d68
Untagged: mariadb:latest
Untagged: mariadb@sha256:3b6f9fa1d406e168998d62501b2ee4f27d53138bebfcdac03540758996c5ff1d
Gelöscht: sha256:fd17f57768027456cc17987058474fb21d3c51e9dd764e4497c1dfe92ff058db
Gelöscht: sha256:a638f04e531b032c81a84bda59a36d1df3c4cec62560c403bc2edb642bce79ba
Gelöscht: sha256:af7a7e7bf72e7ad0c5227995f219d9094fafbe0ac973dbe7eb4ab190a5a58ba5
Gelöscht: sha256:a0cfd81b291e8da6bca0731c9db70fe1b61d176906b1cf05ade1cd61572ffaaa
Gelöscht: sha256:38b00cb5dab64398092fab2b18563af1ef4a9445dec8a531ac725059dc218f41
Gelöscht: sha256:6e60d29d2d76125f989f503a78729984f7ba3e26bfbf7038d5ab644b8755b7c2
Gelöscht: sha256:1dafdd60e471b4c1f5244cfe1d20d79f934f504ef42180b637886be2b0b74370
Gelöscht: sha256:2fffe8e736cdb99359084e297f4bb54a4cac879366bd3e4333d3dbe966f8e9a6
Gelöscht: sha256:f728037697805db453111266541c202c74971484ef359ea29b9c60064ed9e47e
Gelöscht: sha256:28155a13db3520201db576bf6d56b68fc08ef27b1c4c49dbfeadef523d35c5f0
Deleted: sha256:7555a8182c42c7737a384cfe03a3c7329f646a3bf389c4bcd75379fc85e6c144
abhisheknair@geekflare:~$

Entfernung erzwingen

Es kann sein, dass Container laufen, die die Images verwenden, die Sie zu löschen versuchen. In solchen Fällen wird Docker eine Warnung ausgeben, wenn Sie versuchen, ein referenziertes Image zu löschen.

abhisheknair@geekflare:~$ docker image rm nginx
Fehlerantwort vom Daemon: Konflikt: Repository-Referenz "nginx" kann nicht entfernt werden (muss erzwungen werden) - Container ce908eadf829 verwendet sein referenziertes Image 4cdc5dd7eaad
abhisheknair@geekflare:~$

Sie können zuerst den zugehörigen Container stoppen und es dann erneut versuchen, oder Sie verwenden die Option -f, die das Entfernen des Bildes erzwingt (seien Sie vorsichtig)

abhisheknair@geekflare:~$ docker image rm nginx -f
Untagged: nginx:latest
Untagged: nginx@sha256:c5aab9d8e259d54af91e0548abf1fa8188a43079eb86b6ba8df9f482a5380720
Gelöscht: sha256:4cdc5dd7eaadff5080649e8d0014f2f8d36d4ddf2eff2fdf577dd13da85c5d2f
abhisheknair@geekflare:~$

Bilder stutzen

Es gibt bestimmte Situationen, in denen ungenutzte Bilder Speicherplatz verbrauchen oder Sie einfach nur alte, nicht mehr benötigte Bilder löschen müssen. Sie können solche unbenutzten Bilder mit Hilfe von

$ docker image prune

Beispiel

abhisheknair@geekflare:~$ docker image prune
WARNUNG! Dadurch werden alle nicht genutzten Images entfernt.
Sind Sie sicher, dass Sie fortfahren möchten? [y/N] y
Insgesamt wiedergewonnener Platz: 0B
abhisheknair@geekflare:~$

Wenn Sie auch alle Bilder bereinigen möchten, die von keinem Container verwendet werden, verwenden Sie die Option -a

abhisheknair@geekflare:~$ docker image prune -a
WARNUNG! Dadurch werden alle Images entfernt, denen nicht mindestens ein Container zugeordnet ist.
Sind Sie sicher, dass Sie fortfahren möchten? [y/N] y
Gelöschte Images:
untagged: mariadb:latest
untagged: mariadb@sha256:3b6f9fa1d406e168998d62501b2ee4f27d53138bebfcdac03540758996c5ff1d
gelöscht: sha256:fd17f57768027456cc17987058474fb21d3c51e9dd764e4497c1dfe92ff058db
deleted: sha256:a638f04e531b032c81a84bda59a36d1df3c4cec62560c403bc2edb642bce79ba
deleted: sha256:af7a7e7bf72e7ad0c5227995f219d9094fafbe0ac973dbe7eb4ab190a5a58ba5
deleted: sha256:a0cfd81b291e8da6bca0731c9db70fe1b61d176906b1cf05ade1cd61572ffaaa
deleted: sha256:38b00cb5dab64398092fab2b18563af1ef4a9445dec8a531ac725059dc218f41
deleted: sha256:6e60d29d2d76125f989f503a78729984f7ba3e26bfbf7038d5ab644b8755b7c2
deleted: sha256:1dafdd60e471b4c1f5244cfe1d20d79f934f504ef42180b637886be2b0b74370
deleted: sha256:2fffe8e736cdb99359084e297f4bb54a4cac879366bd3e4333d3dbe966f8e9a6
deleted: sha256:f728037697805db453111266541c202c74971484ef359ea29b9c60064ed9e47e
deleted: sha256:28155a13db3520201db576bf6d56b68fc08ef27b1c4c49dbfeadef523d35c5f0
deleted: sha256:7555a8182c42c7737a384cfe03a3c7329f646a3bf389c4bcd75379fc85e6c144
untagged: redis:latest
untagged: redis@sha256:cd0c68c5479f2db4b9e2c5fbfdb7a8acb77625322dd5b474578515422d3ddb59
deleted: sha256:aa4d65e670d6518e5da96ca9d1a76370a942970a8802e6d5cc6bcf058ab12ca7
deleted: sha256:3bd00d38f5ca70200050477c527cc60cfdf82911d6fe03932e2bcae31a95cfa2
deleted: sha256:22722fde392d188cfbe5bbd0c2451cc71cf5b000afc0e5114c1066bb5e113ec9
deleted: sha256:38212b55ef525e86cd726cd83c1a82a6009c68d24771d6e93d439fdc88e66f0e
deleted: sha256:188c498579cef37b65a93d6448c6b129fa07d5740fc213a18843ff22d80cd10d
deleted: sha256:2117165cd53c98f13ec7af36c9d8acd239fc541c847efaccb49885decf615d68

Insgesamt wiedergewonnener Platz: 445.2MB
abhisheknair@geekflare:~$

Sie können auch die Flagge --force oder -f verwenden, um mit der Bereinigung ohne Bestätigung fortzufahren, oder die Flagge --filter verwenden, um den Befehl prune Filterwerte (z.B. 'until=') zu übergeben

Beispiel

$ docker image prune -a --force --filter "until=2021-01-04T00:00:00"

Oder
$

 docker image prune --filter="label=deprecated"

Befehl rmi verwenden

Sie können auch den Befehl rmi mit Docker verwenden, um Images zu entfernen

Er entfernt (und hebt die Tags auf) ein oder mehrere Bilder aus dem Docker-Knoten. Wenn ein Bild über mehrere Tags verfügt, wird durch die Verwendung dieses Befehls mit dem Tag als Parameter nur das Tag entfernt. Wenn das Tag das einzige für das Bild ist, werden sowohl das Bild als auch das Tag entfernt

Mit diesem Befehl können Sie keine Bilder aus einer Registrierung entfernen. Außerdem können Sie ein Bild eines laufenden Containers nur dann entfernen, wenn Sie die Option -f verwenden, wie beim Befehl docker image rm

Beispiel

abhisheknair@geekflare:~$ docker rmi alpine
Untagged: alpine:latest
Untagged: alpine@sha256:adab3844f497ab9171f070d4cae4114b5aec565ac772e2f2579405b78be67c96
Gelöscht: sha256:d4ff818577bc193b309b355b02ebc9220427090057b54a59e73b79bdfe139b83
Deleted: sha256:72e830a4dff5f0d5225cdc0a320e85ab1ce06ea5673acfe8d83a7645cbd0e9cf
abhisheknair@geekflare:~$

Sie können auch --no-prune verwenden, um anzugeben, dass nicht markierte Eltern nicht gelöscht werden sollen

Container stoppen und Bilder entfernen

Es kann vorkommen, dass Sie alle Container stoppen und alle zugehörigen Bilder entfernen müssen. Das können Sie ganz einfach tun mit

$ docker rm -vf $(docker ps -a -q)

Mit dem obigen Befehl werden alle laufenden Container gestoppt und zwangsweise entfernt. Anschließend können wir die verknüpften Bilder mit folgendem Befehl entfernen

$ docker rmi -f $(docker images -a -q)

Zusammenfassung

Docker ist ein vielseitiges Tool, das für DevOps-Ingenieure von heute unverzichtbar ist und Teil anderer aufregender Technologien wie Kubernetes ist. Die Verwaltung von Docker-Images ist einer der wichtigsten Bestandteile der Verwaltung und Fehlerbehebung einer Docker-Installation

Sie sollten nun eine grundlegende Vorstellung von den Möglichkeiten haben, die der Docker CLI-Befehl mit seinen Befehlen wie image, images und rmi bietet. Ihre Flags bieten weitere Anpassungsmöglichkeiten und bieten erweiterte Filter- und Anpassungsoptionen, die bei der Automatisierung und der fortgeschrittenen Nutzung helfen können

Verwenden Sie die Hilfe von docker [COMMAND], um weitere Details zu den verfügbaren Optionen und den zugehörigen Hilfethemen zu erhalten.

  • Abhishek Nair
    Autor
Dank an unsere Sponsoren
Weitere großartige Lektüre über DevOps
Energie für Ihr Unternehmen
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti nutzt das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu überprüfen und innerhalb weniger Stunden verwertbare Ergebnisse zu erzielen.
    Versuchen Sie Invicti
  • Web Scraping, Residential Proxy, Proxy Manager, Web Unlocker, Search Engine Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie Brightdata
  • Monday.com ist ein All-in-One-Betriebssystem, mit dem Sie Projekte, Aufgaben, Arbeit, Vertrieb, CRM, Arbeitsabläufe und vieles mehr verwalten können.
    Versuch Montag
  • Intruder ist ein Online-Schwachstellen-Scanner, der Schwachstellen in Ihrer Infrastruktur aufspürt, um kostspielige Datenschutzverletzungen zu vermeiden.
    Versuchen Sie Intruder