[转帖]查找 docker 镜像的所有 tag

查找,docker,镜像,所有,tag · 浏览次数 : 0

小编点评

**阅读方式:** 您可以阅读以下链接中的内容: * **jianshu**:该网站提供了对 Docker 镜像标签的详细信息,包括各标签的描述和版本。 * **docker-hub**:该网站是 Docker Hub 的官方镜像仓库,提供各种 Linux 和 Windows 镜像。您可以通过其网站上搜索和查找 Docker 镜像。 * **list_image_tags_v1.sh 和 list_image_tags_v2.sh**:这些脚本提供 v1 和 v2 版 Docker 镜像标签的读取功能。 **注意:** * 两种脚本都需要您安装 `jq` 和 `yajl` 包才能运行。 * 在使用 v1 版 API 时,请注意 `docker-hub` 的页面大小可能非常大,因此您可以使用 `page_size` 参数来指定读取数量。 * 在使用 v2 版 API 时,请注意 `jq` 的参数可能与 v1 版不同。

正文

https://www.jianshu.com/p/f974ec9e7937

 

建议阅读方式

可前往语雀阅读,体验更好:查找 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
    
     

参考资料

 
 
0人点赞
 

与[转帖]查找 docker 镜像的所有 tag相似的内容:

[转帖]查找 docker 镜像的所有 tag

https://www.jianshu.com/p/f974ec9e7937 建议阅读方式 可前往语雀阅读,体验更好:查找 docker 镜像的所有 tag 环境说明 centos7 阿里云主机一台: docker 相关信息如下: 测试镜像 hello-world 的 tags 情况见官网:dock

[转帖]查找 docker 镜像的所有 tag

查找 docker 镜像的所有 tag https://www.jianshu.com/p/f974ec9e7937 建议阅读方式 可前往语雀阅读,体验更好:查找 docker 镜像的所有 tag 环境说明 centos7 阿里云主机一台: docker 相关信息如下: 测试镜像 hello-wor

[转帖]Docker 安装部署RabbitMQ

https://www.jianshu.com/p/14ffe0f3db94 15691 15692 这两个端口挺有用的 这里注意获取镜像的时候要获取management版本的,不要获取last版本的,management版本的才带有管理界面。 获查询镜像 docker search rabbitm

[转帖]docker容器跨主机网络overlay

https://www.cnblogs.com/machangwei-8/p/15757120.html 目录 拉取镜像,运行容器 浏览器上访问Consul 修改host1,host2的docker daemon配置文件 创建网络 验证 在overlay中运行容器 运行 查看一下这两个网卡 查看生成

[转帖]查看docker中运行的JVM参数问题及解决方法

方法一、jcmd命令: 1、jps获取java的线程id 2、jcmd pidVM.flags获取 51152:-XX:CICompilerCount=3 -XX:InitialHeapSize=526385152 -XX:MaxHeapSize=1073741824 -XX:MaxNewSize=

[转帖]harbor 更改网段(docker-compose)

`https://blog.csdn.net/Darkernote/article/details/119390862` 问题:harbor 安装后网段冲突 docker-compose 一般安装会创建一个默认的网桥ip为172.17,18有和公司网络冲突的可能 解决方案: 一、 查看docker

[转帖]Docker容器日志查看与清理(亲测有效)

1. 问题 docker容器日志导致主机磁盘空间满了。docker logs -f container_name噼里啪啦一大堆,很占用空间,不用的日志可以清理掉了。 2. 解决方法 2.1 找出Docker容器日志 在linux上,容器日志一般存放在/var/lib/docker/container

[转帖]Docker容器无法访问网络问题(网段冲突)

近日在使用docker在腾讯云服务器上部署项目 运行容器时死活访问不了网络,不论是外网还是内网。 最后找到原因是docker容器ip网段与服务器内网ip网段冲突导致的 使用此命令查看到 ifconfig 1 可以看到ip段冲突了 咱们重建docker的ip段 首先删除docker的网卡docker0

[转帖]Docker容器动态添加端口

方法1 修改iptables端口映射 docker的端口映射并不是在docker技术中实现的,而是通过宿主机的iptables来实现。通过控制网桥来做端口映射,类似路由器中设置路由端口映射。 比如我们有一个容器的80端口映射到主机的8080端口,先查看iptables到底设置了什么规则:登录后复制

[转帖]Docker容器管理技术-高级网络管理

Docker容器管理技术-高级网络管理 https://www.jianshu.com/p/5859a2fe4377 1. Docker本地网络类型 1.1查看支持网络类型 docker network ls 1.2 测试使用各类网络类型 docker run network=xxx none :