查找 docker 镜像的所有 tag

建议阅读方式

可前往语雀阅读,体验更好:查找 docker 镜像的所有 tag

环境说明

centos7 阿里云主机一台:

docker 相关信息如下:

测试镜像 hello-world 的 tags 情况见官网:docker-hub#hello-world#tags

curl 安装相关信息:

查看方式

方法一:利用 v1 版 api

命令如下,其中 hello-world 为镜像名字:

curl -L -s https://registry.hub.docker.com/v1/repositories/hello-world/tags | json_reformat | grep -i name | awk '{print $2}' | sed 's/\"//g' | sort -u

封装成 list_image_tags_v1.sh

#!/bin/bash

repo_url=https://registry.hub.docker.com/v1/repositories
image_name=$1

curl -L -s ${repo_url}/${image_name}/tags | json_reformat | grep -i name | awk '{print $2}' | sed 's/\"//g' | sort -u

注意:用到了 json_reformt 命令,系统中必须安装 yajl rpm 包

方法二:利用 v2 版 api

命令如下,其中 hello-world 为镜像名字:

curl -L -s 'https://registry.hub.docker.com/v2/repositories/library/hello-world/tags?page_size=1024' | jq '.results[]["name"]' | sed 's/\"//g' | sort -u

封装成 list_image_tags_v2.sh

#!/bin/bash

repo_url=https://registry.hub.docker.com/v2/repositories/library
image_name=$1

curl -L -s ${repo_url}/${image_name}/tags?page_size=1024 | jq '.results[]["name"]' | sed 's/\"//g' | sort -u

注意:用到了 jq 命令,系统中必须安装 jq rpm 包

对比两种方法得到的结果

其他方法合集

测试镜像: hello-world

  • wget v1

    # 写法一
    wget -q https://registry.hub.docker.com/v1/repositories/hello-world/tags -O -  | sed -e 's/[][]//g' -e 's/"//g' -e 's/ //g' | tr '}' '\n'  | awk -F: '{print $3}' | sort -u
    
    # 写法二
    wget -q https://registry.hub.docker.com/v1/repositories/hello-world/tags -O - | tr -d '[]{, ' | tr '}' '\n' | awk -F: '{print $3}' | sed 's/"//g' | sort -u
    
  • wget v1 jq(简洁)

    wget -q https://registry.hub.docker.com/v1/repositories/hello-world/tags -O - | jq -r '.[].name' | sort -u
    
  • skopeo(简洁,需安装 skopeo rpm 包,该包依赖项比较多)

    安装 skopeo rpm 包方法:

    yum search skopeo

    yum install -y skopeo

    # --override-os linux 参数只在非 Linux 宿主机上需要,如 MacOS
    skopeo --override-os linux inspect docker://hello-world | jq '.RepoTags' | tr -d '[]", ' | sort -u
    
    # 在 centos 上,上述命令还可以被简写成如下形式
    skopeo inspect docker://hello-world | jq '.RepoTags' | tr -d '[]", ' | sort -u
    

参考资料

推荐阅读更多精彩内容