이 명령을 사용하여 크기가 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
와 같이 사람이 읽을 수 있는 크기 정보를 생성하는 것 입니다 .10MB
1.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
.
.
.