重新为映像添加标签 - Amazon ECR
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

重新为映像添加标签

借助 Docker Image Manifest V2 Schema 2 映像,可以使用 --image-tag 命令的 put-image 选项重新为现有映像添加标签。无需使用 Docker 拉取或推送映像,即可重新添加标签。对于大型映像,此过程可大大节省重新为映像添加标签所需的网络带宽和时间。

使用 重新为映像添加标签AWS CLI

  1. 使用 batch-get-image 命令可获取要重新添加标签的映像的映像清单并将其写入环境变量。在此示例中,为具有 标签的映像的清单。latest,在 存储库中,amazonlinux,写入到 环境变量中,MANIFEST.

    MANIFEST=$(aws ecr batch-get-image --repository-name amazonlinux --image-ids imageTag=latest --query 'images[].imageManifest' --output text)
  2. 使用 --image-tag 命令的 put-image 选项将镜像清单与新标签一起放置到 Amazon ECR 中。在此示例中,映像标记为 2017.03.

    注意

    如果 --image-tag 选项在您的 版本中不可用AWS CLI,请升级到最新版本。有关更多信息,请参阅 https://docs.amazonaws.cn/cli/latest/userguide/ 中的AWS Command Line Interface 用户指南安装 AWS 命令行界面.

    aws ecr put-image --repository-name amazonlinux --image-tag 2017.03 --image-manifest "$MANIFEST"
  3. 验证您的新映像标签是否已附加到您的映像。在以下输出中,映像具有标签 latest2017.03

    aws ecr describe-images --repository-name amazonlinux

    您可以在一个 (扩展) 代码行中执行所有这些操作:

    {
        "imageDetails": [
            {
                "imageSizeInBytes": 98755613,
                "imageDigest": "sha256:8d00af8f076eb15a33019c2a3e7f1f655375681c4e5be157a2685dfe6f247227",
                "imageTags": [
                    "latest",
                    "2017.03"
                ],
                "registryId": "aws_account_id",
                "repositoryName": "amazonlinux",
                "imagePushedAt": 1499287667.0
            }
        ]
    }

使用 重新为映像添加标签适用于 Windows PowerShell 的 AWS 工具

  1. 使用 Get-ECRImageBatch cmdlet 获取要重新添加标签的映像的描述并将其写入环境变量。在此示例中,为具有 标签的映像。latest,在 存储库中,amazonlinux,写入到 环境变量中,$Image.

    注意

    如果您的系统上没有Get-ECRImageBatch可用的 cmdlet,请参阅 适用于 Windows PowerShell 的 AWS 工具 中的设置 适用于 Windows PowerShell 的 AWS 工具 用户指南

    $Image = Get-ECRImageBatch -ImageId @{ imageTag="latest" } -RepositoryName amazonlinux
  2. 将映像的清单写入到 $Manifest 环境变量。

    $Manifest = $Image.Images[0].ImageManifest
  3. 使用 -ImageTag cmdlet 的 Write-ECRImage 选项将镜像清单与新标签一起放置到 Amazon ECR 中。在此示例中,映像标记为 2017.09.

    Write-ECRImage -RepositoryName amazonlinux -ImageManifest $Manifest -ImageTag 2017.09
  4. 验证您的新映像标签是否已附加到您的映像。在以下输出中,映像具有标签 latest2017.09

    Get-ECRImage -RepositoryName amazonlinux

    您可以在一个 (扩展) 代码行中执行所有这些操作:

    ImageDigest                                                             ImageTag
    -----------                                                             --------
    sha256:359b948ea8866817e94765822787cd482279eed0c17bc674a7707f4256d5d497 latest
    sha256:359b948ea8866817e94765822787cd482279eed0c17bc674a7707f4256d5d497 2017.09