2017-06-29 20 views
1

ドッカー画像を引き出している間に別の部分(レイヤー)にダウンロードするので、実際にダウンロードする前に画像のすべての必要なレイヤーをダウンロードする必要があります。ドッカー画像のサイズをダウンロードする

これを行う方法はありますか?


一つだけdocker pullのコマンドを実行し、出力を見ることもできます。

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

ので、そのダウンロードサイズが「42.15」です。

は、しかし、私はレイヤーを一つずつダウンロードできるようになっいくつかのオプションを持っている:

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

ので、このソリューションは私のために動作しません。

+1

あなたがあなたの評判を無駄にしなかったのでOPが質問を改善する方法を知っているように、常にOPにコメントを残してください:-) – Ravexina

答えて

2

残念ながら、Docker Hub APIは公開されていません。しかし、あなたはAPIのために使用するJWTを取得することができますし、サイズを取得するためにタグを一覧表示する呼び出しを行います。ここでは、バイト単位でサイズを解析するjqを使用した例である:あなたのトークンを取得するための

まず認証:

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) 

今、あなたは特定のタグのためのフィルタリングとサイズを取得するには、タグのAPIを照会することができます。この例では、公式のライブラリwordpress画像を取得し、latestタグをフィルタリングしている:

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' 

あなたはバイト単位で画像全体の大きさである169817871のようなものを取り戻す必要があります。これは、https://gist.github.com/kizbitz/e59f95f7557b4bbb8bf2にある情報の変更例です。

+1

価値あり'curl'の出力を' numfmt --to = iec-i'に渡して '162Mi'のような人間が読める数を得ることができます。 – Ravexina

0

しかし、@Andyによって提供される答えは、プログラマーの選択とよりよい方法に似ています。私は通常、簡単で便利な方法を使用します。

多くの場合、Docker-imageのサイズとパフォーマンスをテストするためにオンラインラボを使用します。私のお気に入りはplay-with-dockerです。これは約3時間のターミナルセッションを提供し、あなたは何もすることは自由です。画像は簡単かつ迅速にダウンロードされます。そしてその後、私はイメージに関して必要なすべての情報を得ます。それはサイズか何かです。私は、そのイメージが私の仕事に合っているかどうかを、それをその場で使ってみることもできます。

関連する問題