如何以标记名称作为正则表达式提取docker hub镜像

问题描述

要求: 假设我在docker hub中有下面列出的图像:

  • imagename:gvh
  • imagename:vidgvh
  • imagename:gvhjeevi
  • imagename:herogvh

如何使用标记名不同的方式拉出所有这些图像,但包含一个带有docker pull命令的公用子模式?

对于aws ecr,我们必须在以下命令下运行,但是对于docker hub,则没有此类选项。

aws ecr list-tags-for-resource --resource-arn arn:aws:ecr:region:account_id:repository/repository_name

引用:https://docs.aws.amazon.com/cli/latest/reference/ecr/list-tags-for-resource.html

docker pull imagename:<regex-tag>

解决方法

我建议使用多个不同命令的管道。 下面是示例:

curl https://registry.hub.docker.com/v1/repositories/mysql/tags \
   | jq -r '.[].name' \
   | grep "8.0" \
   | xargs -i docker pull mysql:{}

您还可以在grep命令中使用正则表达式。