크기가 10MB보다 작은 Docker 이미지를 나열할 수 있나요?

크기가 10MB보다 작은 Docker 이미지를 나열할 수 있나요?

이 명령을 사용하여 크기가 10MB보다 작은 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
.
.
.

관련 정보