Ich möchte herausfinden, ob lokal ein Docker-Image mit einem bestimmten Tag vorhanden ist. Ich kann ein Bash-Skript verwenden, wenn der Docker-Client dies nicht nativ ausführen kann.
Um nur einige Hinweise für ein potenzielles Bash-Skript zu geben, gibt das Ergebnis der Ausführung des docker images
Befehls Folgendes zurück:
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
rabbitmq latest e8e654c05c91 5 weeks ago 143.5 MB
busybox latest 8c2e06607696 6 weeks ago 2.433 MB
rabbitmq 3.4.4 a4fbaad9f996 11 weeks ago 131.5 MB
Versuchen Sie
docker inspect
zum Beispiel:Aber jetzt mit einem Bild, das existiert, erhalten Sie eine Reihe von Informationen, z.
Und es ist in einem schönen JSON-Format.
quelle
images
undps
Befehleinspect
docker inspect "${image_id}:${image_tag}" > /dev/null 2>&1 || echo "does not exist!"
docker inspect
ist großartig wegen des Rückkehrcodes ungleich Null, wenn kein Bild vorhanden ist.docker images -q
.tldr:
Zur Demonstration ...
Erfolg, gefundenes Bild:
Fehler, fehlendes Bild:
Referenz:
https://docs.docker.com/engine/reference/commandline/image_inspect/
quelle
Sie können wie folgt verwenden:
Oder:
quelle
Mit Hilfe der obigen Antwort von Vonc habe ich das folgende Bash-Skript mit dem Namen erstellt
check.sh
:Wenn Sie es für ein vorhandenes Bild und Tag verwenden, wird Folgendes gedruckt
exists
:Wenn Sie es für ein nicht vorhandenes Bild und Tag verwenden, wird Folgendes gedruckt
doesn't exist
:quelle
Verwenden von
test
oder in einer Zeile
quelle
Falls Sie für ein Docker Bild von einem Docker Registry suchen versuchen, ich denke , der einfachste Weg , um zu überprüfen , ob ein Docker Bild unter Verwendung der vorhanden ist Docker V2 REST API Stichworte Listendienst
Beispiel:-
Wenn das obige Ergebnis 200Ok mit einer Liste von Bild-Tags zurückgibt, wissen wir, dass das Bild vorhanden ist
sonst wenn du so etwas siehst
dann wissen Sie sicher, dass das Bild nicht existiert.
quelle
Im Bash-Skript überprüfe ich, ob das Bild nach Tag vorhanden ist:
Das obige Beispielskript prüft, ob ein MySQL-Bild mit dem Tag 5.6 vorhanden ist. Wenn Sie nur überprüfen möchten, ob ein MySQL-Image ohne bestimmte Version vorhanden ist, übergeben Sie einfach den Repository-Namen ohne Tag wie folgt:
quelle
Nur ein bisschen von mir zu sehr guten Lesern:
Bauen
Beobachten
Lauf
quelle
für einen bestimmten Tag-Namen
für "like Klausel" Tagname: my_image_tag -> starte my_ima *
Wenn Sie beispielsweise "das Bild" löschen möchten, löschen Sie alle Bilder, die mit "my_ima" gestartet wurden. Versuchen Sie dies
quelle