Możemy wyszukać dostępne pliki obrazów w witrynie dokera w następujący sposób:
Jak mogę określić rozmiar (rozmiary) pobierania przed pobraniem?
docker.io pull [image]
Możemy wyszukać dostępne pliki obrazów w witrynie dokera w następujący sposób:
Jak mogę określić rozmiar (rozmiary) pobierania przed pobraniem?
docker.io pull [image]
Odpowiedzi:
Patrząc na API dla Docker, Docker Remote API v1.10 , nie wydaje się, że jest jakiś sposób na uzyskanie rozmiarów obrazów. Sekcja „2.2 Obrazy” pokazuje specyfikację dotyczącą zapytań o obrazy.
Przykład
Ale to zapytanie musi być zgodne z rzeczywistą instancją Dockera. Oto przykład pokazujący, jak można użyć powyższego zapytania RESTful:
Nie widziałem sposobu na zapytanie publicznych repozytoriów przy użyciu tego konkretnego wywołania RESTful. Jedyną inną metodą RESTful, która wyglądała, jakbyś mógł zapytać o obrazy docker.io, była wyszukiwarka
GET /images/search
, ale API nie pokazuje żadnych zwracanych atrybutów rozmiaru.Referencje
źródło
docker search
To nie jest bezpośrednia odpowiedź na twoje pytanie, ale mam nadzieję, że mimo wszystko będzie pomocna.
W skrypcie użycia dysku w moich eksperymentach Dockera używam czegoś takiego:
Możesz więc uruchomić np .:
Możesz też pobrać ten skrypt: użycie dysku i uruchomić np.
./disk-usage "ubuntu busybox gcc"
Aby wyświetlić użycie dysku (zgodnie z raportemdu -sh
) dla tych 3 obrazów:Pamiętaj, że nie pokazuje rzeczywistego pobierania wymaganego dla danego obrazu i wyświetli wynik po pobraniu obrazu, ale daje pewne wyobrażenie o tym, jak rozdęty jest dany obraz w porównaniu do innych.
Możesz uruchomić go na jednym komputerze, aby zdecydować, czy chcesz pobrać te obrazy na inne komputery, czy w ogóle go użyć.
źródło
W przypadku interfejsu API HTTP v2 rozmiar jest dostępny za pośrednictwem zasobu znaczników w obszarze
size
ifull_size
. Oto przykładowy adres URL z jednego z tagów mojego repo:https://cloud.docker.com/v2/repositories/deepdriveio/deepdrive/tags/?page_size=25&page=1
źródło
Jeśli naprawdę przyjrzysz się kodowi dokowanemu dla operacji ściągania, myślę, że twoja odpowiedź tam jest. Jeśli obraz kontenera nie jest buforowany, to podczas pobierania obrazu dokerka najpierw zbiera informacje o obrazie z rejestru, takie jak liczba warstw, rozmiar każdej warstwy itp.
Odsyłam do przeczytania tego pliku.
https://github.com/moxiegirl/docker/blob/master/distribution/xfer/download.go
źródło
Obraz w innym rejestrze, takim jak Microsoft Container Registry. Wymyślam 3 sposoby.
docker manifest inspect
aby obserwować dane manifestu, które mogą dać ci wyobrażenie o tym, jak uzyskać skompresowany rozmiar obrazu.Aby włączyć
docker manifest inspect
, edytuj~/.docker/config.json
plik i ustawexperimental
naenable
. (Odwołanie: manifest manifestu dokera )Wepchnij obraz do Docker Hub, a możesz uzyskać skompresowany rozmiar obrazu na stronie Docker Hub.
Użyj,
docker save
aby zapisać obraz do pliku .tar, a następnie skompresuj go do pliku .tar.gz.źródło