Amazon ECR에서 이미지 재태그 지정

Amazon ECR에서 이미지 재태그 지정

Docker Image Manifest V2 Schema 2 이미지에서는 put-image 명령어의 --image-tag 옵션을 사용해 기존 이미지에 태그를 다시 지정(retag)할 수 있습니다. 이미지를 Docker로 풀하거나 푸시하지 않고도 재태그 지정할 수 있습니다. 큰 이미지의 경우 이 과정을 통해 재태그 지정에 필요한 네트워크 대역폭과 시간을 상당히 절약할 수 있습니다.

출처: 문서

본문

AWS CLI로 이미지 재태그 지정

  1. batch-get-image 명령어를 사용해 재태그 지정할 이미지의 매니페스트를 가져와 파일에 기록합니다. 이 예시에서는 amazonlinux 리포지토리에서 태그가 latest인 이미지의 매니페스트를 MANIFEST라는 환경 변수에 기록합니다.

    MANIFEST=$(aws ecr batch-get-image --repository-name amazonlinux --image-ids imageTag=latest --output text --query 'images[].imageManifest')
    
  2. put-image 명령어의 --image-tag 옵션을 사용해 새 태그로 이미지 매니페스트를 Amazon ECR에 넣습니다. 이 예시에서는 이미지에 2017.03 태그를 지정합니다.

    참고 --image-tag 옵션이 AWS CLI 버전에서 사용할 수 없다면 최신 버전으로 업그레이드하세요. 자세한 내용은 AWS Command Line Interface User Guide의 AWS 명령줄 인터페이스 설치를 참고하세요.

    aws ecr put-image --repository-name amazonlinux --image-tag 2017.03 --image-manifest "$MANIFEST"
    
  3. 새 이미지 태그가 이미지에 연결되었는지 확인합니다. 다음 출력에서 이미지는 latest와 2017.03 태그를 가지고 있습니다.

    aws ecr describe-images --repository-name amazonlinux
    

    출력은 다음과 같습니다.

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

AWS Tools for Windows PowerShell로 이미지 재태그 지정

  1. Get-ECRImageBatch cmdlet을 사용해 재태그 지정할 이미지의 설명을 가져와 환경 변수에 기록합니다. 이 예시에서는 amazonlinux 리포지토리에서 태그가 latest인 이미지를 $Image 환경 변수에 기록합니다.

    참고 시스템에 Get-ECRImageBatch cmdlet이 없다면 AWS Tools for PowerShell User Guide의 AWS Tools for Windows PowerShell 설정을 참고하세요.

    $Image = Get-ECRImageBatch -ImageId @{ imageTag="latest" } -RepositoryName amazonlinux
    
  2. 이미지의 매니페스트를 $Manifest 환경 변수에 기록합니다.

    $Manifest = $Image.Images[0].ImageManifest
    
  3. Write-ECRImage cmdlet의 -ImageTag 옵션을 사용해 새 태그로 이미지 매니페스트를 Amazon ECR에 넣습니다. 이 예시에서는 이미지에 2017.09 태그를 지정합니다.

    Write-ECRImage -RepositoryName amazonlinux -ImageManifest $Manifest -ImageTag 2017.09
    
  4. 새 이미지 태그가 이미지에 연결되었는지 확인합니다. 다음 출력에서 이미지는 latest와 2017.09 태그를 가지고 있습니다.

    Get-ECRImage -RepositoryName amazonlinux
    

    출력은 다음과 같습니다.

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

더 알아보기 (Learn more)