Amazon ECR 프라이빗 리포지토리에 멀티 아키텍처 이미지 푸시

Amazon ECR 프라이빗 리포지토리에 멀티 아키텍처 이미지 푸시

Docker 매니페스트 목록(manifest lists)을 만들고 푸시해 멀티 아키텍처 이미지를 Amazon ECR 리포지토리에 푸시하는 방법을 설명합니다. 매니페스트 목록은 하나 이상의 이미지 이름을 지정해 만드는 이미지 목록입니다. 대부분의 경우 매니페스트 목록은 같은 기능을 제공하지만 운영 체제나 아키텍처가 다른 이미지들로 만들어집니다. 매니페스트 목록은 필수가 아닙니다. 자세한 내용은 docker manifest 문서를 참고하세요.

매니페스트 목록은 다른 Amazon ECR 이미지처럼 Amazon ECS 작업 정의나 Amazon EKS 파드 스펙에서 풀하거나 참조할 수 있습니다.

출처: 문서

본문

사전 요구 사항

멀티 아키텍처 Docker 이미지를 Amazon ECR 리포지토리에 푸시

  1. 이미지를 푸시하려는 Amazon ECR 레지스트리에 Docker 클라이언트를 인증합니다. 인증 토큰은 사용하는 각 레지스트리에 대해 얻어야 하며, 토큰의 유효 기간은 12시간입니다. 자세한 내용은 Amazon ECR의 프라이빗 레지스트리 인증을 참고하세요.

    Docker를 Amazon ECR 레지스트리에 인증하려면 aws ecr get-login-password 명령어를 실행합니다. 인증 토큰을 docker login 명령어에 전달할 때 사용자 이름에는 AWS 값을 사용하고, 인증하려는 Amazon ECR 레지스트리 URI를 지정합니다. 여러 레지스트리에 인증하는 경우 각 레지스트리에 대해 명령어를 반복해 실행해야 합니다.

    중요 오류가 발생하면 AWS CLI를 최신 버전으로 설치하거나 업그레이드하세요. 자세한 내용은 AWS Command Line Interface User Guide의 AWS 명령줄 인터페이스 설치를 참고하세요.

    aws ecr get-login-password --region <region> | docker login --username AWS --password-stdin <aws_account_id>.dkr.ecr.<region>.amazonaws.com
    
  2. 리포지토리의 이미지를 나열해 이미지 태그를 확인합니다.

    aws ecr describe-images --repository-name my-repository
    
  3. Docker 매니페스트 목록을 생성합니다. manifest create 명령어는 참조된 이미지가 이미 리포지토리에 있는지 확인하고 매니페스트를 로컬에 만듭니다.

    docker manifest create aws_account_id.dkr.ecr.region.amazonaws.com/my-repository aws_account_id.dkr.ecr.region.amazonaws.com/my-repository:image_one_tag aws_account_id.dkr.ecr.region.amazonaws.com/my-repository:image_two
    
  4. (선택 사항) Docker 매니페스트 목록을 검사합니다. 이렇게 하면 매니페스트 목록에서 참조하는 각 이미지 매니페스트의 크기와 다이제스트(digest)를 확인할 수 있습니다.

    docker manifest inspect aws_account_id.dkr.ecr.region.amazonaws.com/my-repository
    
  5. Docker 매니페스트 목록을 Amazon ECR 리포지토리에 푸시합니다.

    docker manifest push aws_account_id.dkr.ecr.region.amazonaws.com/my-repository
    

더 알아보기 (Learn more)