サイズが10MB未満のDockerイメージを一覧表示できますか?

サイズが10MB未満のDockerイメージを一覧表示できますか?

このコマンドを使用して、サイズが10 MB未満のDockerイメージを一覧表示しました。

> docker images --format '{{.Repository}}:{{.Tag}}\t{{.Size}}' | awk '{ if ($2 < "10MB") print $0 }'

registry.cn-hongkong.aliyuncs.com/reddwarf-pro/chat-server:ac9b7e52b86a5c86fdd7b613a211e33247018ad3 1.84GB
cruise-radar:latest 1.11GB
busybox:latest  1.41MB
rust:1.54-bullseye  1.5GB

期待どおりに動作しないようです。私は何を逃したことがありませんか?

ベストアンサー1

@JaromandaXがコメントで述べたように、問題はまたはdocker imagesなどの人が読めるサイズ情報を生成することです。10MB1.1GB

サフィックスを解析し、それらをすべてバイトに変換してこれらの値を変換できますが、別のオプションがあります。コマンドを使用する代わりに、Docker APIと直接対話できます。docker imagesここでの利点は、APIが画像サイズを報告することです。バイト単位なので変換は不要です。

使用curl:

curl --unix-socket /var/run/docker.sock http://localhost/images/json |
  jq -r '.[]|select(.Size < 10485760)|[.RepoTags[0], .Size]|@tsv'

私のシステムでは、次のような結果が生成されます。

serjs/go-socks5-proxy:latest    4675775
chedched/foo:latest     7282688
cilium/pwru:latest      4263936
alpinelinux/darkhttpd:latest    5618779
traefik/whoami:latest   6508005
alpine:latest   5544164
containous/whoami:latest        7373346
.
.
.

おすすめ記事