Kami dapat mencari file gambar yang tersedia di situs web buruh pelabuhan seperti ini:
Bagaimana cara mengetahui ukuran unduhan sebelum menarik?
docker.io pull [image]
Kami dapat mencari file gambar yang tersedia di situs web buruh pelabuhan seperti ini:
Bagaimana cara mengetahui ukuran unduhan sebelum menarik?
docker.io pull [image]
Jawaban:
Melihat API untuk Docker, Docker Remote API v1.10 , tampaknya tidak ada cara untuk mendapatkan ukuran gambar. Bagian "2.2 Gambar" menunjukkan spesifikasi untuk cara menanyakan tentang gambar.
Contoh
Tapi kueri ini harus bertentangan dengan instance Docker yang sebenarnya. Berikut ini contoh yang menunjukkan bagaimana seseorang dapat menggunakan kueri RESTful di atas:
Saya tidak melihat cara untuk menanyakan repositori publik menggunakan panggilan tenang ini. Satu-satunya metode RESTful lain yang tampak seperti Anda dapat meminta gambar docker.io adalah melalui pencarian
GET /images/search
, tetapi API tidak menunjukkan atribut ukuran yang dikembalikan untuk ini.Referensi
sumber
docker search
Ini bukan jawaban langsung untuk pertanyaan Anda, tetapi saya harap ini akan membantu.
Dalam skrip penggunaan disk dalam percobaan Docker saya, saya menggunakan sesuatu seperti ini:
Jadi Anda bisa berlari, misalnya:
Atau Anda dapat mengunduh skrip itu: penggunaan disk dan menjalankan mis.
./disk-usage "ubuntu busybox gcc"
Agar penggunaan disk (sebagaimana dilaporkan olehdu -sh
) ditampilkan untuk 3 gambar tersebut:Harap perhatikan bahwa itu tidak menunjukkan unduhan aktual yang diperlukan untuk gambar apa pun, dan itu akan menampilkan hasilnya setelah mengunduh gambar, tetapi ini memberikan beberapa gagasan tentang bagaimana kembung adalah gambar yang diberikan dibandingkan dengan yang lain.
Anda dapat menjalankannya di satu mesin untuk memutuskan apakah Anda ingin mengunduh gambar itu di komputer lain, atau menggunakannya sama sekali.
sumber
Untuk HTTP API v2, ukuran tersedia melalui sumber tag di bawah
size
danfull_size
. Berikut ini contoh URL dari salah satu tag repo saya:https://cloud.docker.com/v2/repositories/deepdriveio/deepdrive/tags/?page_size=25&page=1
sumber
Jika Anda benar-benar melihat ke kode buruh pelabuhan untuk operasi tarik, saya pikir jawaban Anda ada di sana. Jika gambar wadah tidak di-cache, maka saat menarik gambar, buruh pelabuhan pertama mengumpulkan informasi tentang gambar dari registri seperti jumlah lapisan, ukuran setiap lapisan dll. Dll.
Saya akan merujuk untuk membaca file ini.
https://github.com/moxiegirl/docker/blob/master/distribution/xfer/download.go
sumber
Untuk gambar di registri lain seperti Microsoft Container Registry. Saya mencari tahu 3 cara.
docker manifest inspect
untuk mengamati data manifes, yang dapat memberi Anda gagasan tentang cara mendapatkan ukuran terkompresi dari gambar.Untuk mengaktifkan
docker manifest inspect
, edit~/.docker/config.json
file dan aturexperimental
keenable
. (Referensi: docker manifest inspect )Dorong gambar ke Docker Hub dan Anda bisa mendapatkan ukuran gambar yang dikompres di situs Docker Hub.
Gunakan
docker save
untuk menyimpan gambar ke file .tar dan kemudian kompres menjadi file .tar.gz.sumber