Docker images 按 SIZE 排序

你可以借助 --format 把镜像列表输出成可排序的纯文本,然后用 sort -h(针对人类可读的尺寸单位)来排序。比如,下面两种方式都可以按 SIZE 升序或降序排列:


1. 按 SIZE 升序

docker images \
  --format "{{.Size}}\t{{.Repository}}\t{{.Tag}}\t{{.ID}}" \
  | sort -h

输出示例:

40.4MB    syncthing/syncthing    latest    90e4c78a38cf
53.6MB    ghcr.io/xtls/xray-core latest    1da722e9a441

2. 按 SIZE 降序

docker images \
  --format "{{.Size}}\t{{.Repository}}\t{{.Tag}}\t{{.ID}}" \
  | sort -hr

输出示例:

53.6MB    ghcr.io/xtls/xray-core latest    1da722e9a441
40.4MB    syncthing/syncthing    latest    90e4c78a38cf

说明

  • --format "{{.Size}}\t{{.Repository}}\t{{.Tag}}\t{{.ID}}"
    自定义输出列,第一列为 SIZE,后面依次是 REPOSITORY、TAG、IMAGE ID,用 \t 分隔方便排序。
  • sort -h
    根据 “人类可读” 的数值(如 KB/MB/GB)进行升序排序。
  • sort -hr
    sort -h 的基础上加上 -r,实现降序。

如果你想保留默认的表头格式,也可以这样做:

(
  docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.ID}}\t{{.Size}}"
) | tail -n +2 | sort -h -k4

这里 tail -n +2 用来去掉第一行表头,-k4 表示按第 4 列(SIZE)排序。