2017-06-29 4 views
1

Während ein Docker-Bild zieht, wird es heruntergeladen in separaten Teilen (Ebenen), ich brauche Download-Größe aller notwendigen Schichten eines Bildes, bevor Sie es tatsächlich herunterladen.Download-Größe von Docker Bilder

Gibt es eine Möglichkeit, es zu tun?


Man kann nur sein, den docker pull Befehl ausführen und die Ausgabe beobachten:

ffcacfbccecb: Downloading [+++++> ] 14.1 MB/30.13 MB 
ffcdbdebabbe: Downloading [++>  ] 1.1 MB/12.02 MB 

so seine Download-Größe ist "42.15".

jedoch einige Optionen bekam Ich habe aktiviert Schichten einzeln herunterladen:

ffcacfbccecb: Downloading [+++++> ] 14.1 MB/30.13 MB 
ffcdbdebabbe: Waiting 

so dass diese Lösung nicht für mich arbeiten.

+1

Lassen Sie immer einen Kommentar, während Sie eine Down-Abstimmung geben, so dass das OP weiß, wie man die Frage verbessert, vor allem auf die Fragen, weil Sie keinen Ruf von Ihnen verschwendet haben, also schulden Sie es dem OP :-) – Ravexina

Antwort

2

Leider ist die Docker Hub API nicht öffentlich dokumentiert. Sie können jedoch eine JWT für die API verwenden und dann einen Aufruf tätigen, um die Tags aufzulisten, um die Größe zu ermitteln. Hier ist ein Beispiel jq mit der Größe in Bytes parsen:

Erste Auth Token zu erhalten:

export HUBUSER=andyshinn 
export HUBPASS=mypass 
export HUBTOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${HUBUSER}'", "password": "'${HUBPASS}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token) 

Jetzt können Sie die Tags API-Abfrage für einen bestimmten Tag zu filtern und die Größe zu bekommen. In diesem Beispiel werden immer wir die offizielle Bibliothek wordpress Bild und Ausfiltern der latest tag:

curl -s -H "Authorization: JWT ${TOKEN}" "https://hub.docker.com/v2/repositories/library/wordpress/tags/?page_size=100" | jq -r '.results[] | select(.name == "latest") | .images[0].size' 

Sie sollten so etwas wie 169817871 zurück, die die Größe des gesamten Bildes in Bytes. Dies ist ein modifiziertes Beispiel aus Informationen, die unter https://gist.github.com/kizbitz/e59f95f7557b4bbb8bf2 zu finden sind.

+1

Wert Erwähnen Sie, dass wir die 'curl'-Ausgabe in' numfmt --to = iec-i' pipern können, um eine menschenlesbare Zahl wie '162Mi' zu bekommen. – Ravexina

0

Allerdings ist die Antwort von @Andy mehr wie die Wahl eines Programmierers und eine bessere Möglichkeit, es zu tun. Ich benutze normalerweise einen anderen Weg, den ich einfacher und bequemer finde.

Ich verwende oft ein Online-Labor zum Testen der Größe und Leistung von Docker-Image. Mein Favorit ist play-with-docker, die eine Terminal-Sitzung von etwa 3 Stunden bietet und Sie können nichts tun. Bilder werden dort schnell und einfach heruntergeladen. Und danach bekomme ich alle Informationen, die ich bezüglich des Bildes benötige, sei es die Größe oder irgendetwas anderes. Ich kann auch sehen, ob dieses Bild zu meiner Arbeit passt oder nicht, indem ich es dann und dort benutze.

Verwandte Themen