Wir können auf der Docker-Website nach verfügbaren Bilddateien wie folgt suchen:
Woran erkenne ich die Downloadgröße (n) vor dem Abrufen?
docker.io pull [image]
Wir können auf der Docker-Website nach verfügbaren Bilddateien wie folgt suchen:
Woran erkenne ich die Downloadgröße (n) vor dem Abrufen?
docker.io pull [image]
Antworten:
Bei der API für Docker, Docker Remote API v1.10 , scheint es keine Möglichkeit zu geben, die Größe der Bilder zu ermitteln. Abschnitt "2.2 Bilder" zeigt die Spezifikation für die Abfrage von Bildern.
Beispiel
Diese Abfrage muss sich jedoch gegen eine tatsächliche Docker-Instanz richten. Hier ist ein Beispiel, das zeigt, wie man die obige RESTful-Abfrage verwenden kann:
Ich sah keine Möglichkeit, die öffentlichen Repositorys mit diesem speziellen RESTful-Aufruf abzufragen. Die einzige andere RESTful-Methode, mit der Sie die Bilder von docker.io abfragen konnten, war die Suche.
GET /images/search
Die API zeigt jedoch keine Größenattribute an , die hierfür zurückgegeben werden.Verweise
quelle
docker search
Dies ist keine direkte Antwort auf Ihre Frage, aber ich hoffe, es wird trotzdem hilfreich sein.
Im Skript zur Datenträgerverwendung in meinen Docker-Experimenten verwende ich Folgendes:
So können Sie zB laufen:
Oder Sie können das Skript herunterladen: Datenträgerverwendung und ausführen, um z. B.
./disk-usage "ubuntu busybox gcc"
die Datenträgerverwendung (wie von gemeldetdu -sh
) für diese 3 Bilder anzuzeigen:Bitte beachten Sie, dass nicht der tatsächliche Download für ein bestimmtes Bild angezeigt wird und das Ergebnis nach dem Herunterladen des Bildes angezeigt wird, aber es gibt eine Vorstellung davon, wie aufgebläht ein bestimmtes Bild im Vergleich zu anderen ist.
Sie können es auf einem Computer ausführen, um zu entscheiden, ob Sie diese Bilder auf andere Computer herunterladen oder überhaupt verwenden möchten.
quelle
Für die HTTP-API v2 ist die Größe über die Tags-Ressource unter
size
und verfügbarfull_size
. Hier ist eine Beispiel-URL aus einem der Tags meines Repos:https://cloud.docker.com/v2/repositories/deepdriveio/deepdrive/tags/?page_size=25&page=1
quelle
Wenn Sie sich den Docker-Code für die Pull-Operation genauer ansehen, ist Ihre Antwort sicher da. Wenn das Bild des Containers nicht zwischengespeichert ist, sammelt Docker beim Ziehen des Bildes zuerst die Informationen über das Bild aus der Registrierung, z. B. Anzahl der Ebenen, Größe der einzelnen Ebenen usw. usw.
Ich würde auf diese Datei verweisen.
https://github.com/moxiegirl/docker/blob/master/distribution/xfer/download.go
quelle
Für Bilder in anderen Registrierungsdatenbanken wie Microsoft Container Registry. Ich finde 3 Wege heraus.
docker manifest inspect
diese Option , um die Manifestdaten zu beobachten, die Ihnen eine Vorstellung davon geben können, wie Sie die komprimierte Größe des Bildes erhalten.Zum Aktivieren
docker manifest inspect
bearbeiten Sie die~/.docker/config.json
Datei und setzen sieexperimental
aufenable
. (Referenz: Docker-Manifest inspizieren )Wenn Sie das Bild in Docker Hub verschieben, können Sie die komprimierte Größe des Bildes auf der Docker Hub-Website abrufen.
Verwenden Sie
docker save
diese Option, um das Bild in einer .tar-Datei zu speichern und anschließend in einer .tar.gz-Datei zu komprimieren.quelle