다중 아키텍처 이미지 푸시 - Amazon ECR

다중 아키텍처 이미지 푸시

Amazon ECR은 다중 아키텍처 이미지에 사용되는 Docker 매니페스트 목록의 생성 및 푸시도 지원합니다. 매니페스트 목록은 하나 이상의 이미지 이름을 지정하여 생성되는 이미지 목록입니다. 대부분의 경우 매니페스트 목록은 다른 운영 체제 또는 아키텍처에 동일한 기능을 제공하는 이미지에서 생성됩니다. 매니페스트 목록은 필수는 아닙니다. 자세한 내용은 도커 매니페스트를 참조하세요.

중요

이 기능을 사용하려면 도커 CLI에 실험 기능이 활성화되어 있어야 합니다. 자세한 내용은 실험 기능을 참조하세요.

매니페스트 목록은 다른 Amazon ECR 이미지와 마찬가지로 Amazon ECS 작업 정의 또는 Amazon EKS 포드 사양에서 가져오거나 참조할 수 있습니다.

다음 단계를 사용하여 Docker 매니페스트 목록을 생성하고 Amazon ECR 리포지토리에 푸시할 수 있습니다. Docker 매니페스트에서 참조할 수 있도록 이미 리포지토리에 푸시된 이미지가 있어야 합니다. 이미지 푸시에 대한 자세한 내용은 Docker 이미지 푸시 단원을 참조하세요.

다중 아키텍처 Docker 이미지를 Amazon ECR 리포지토리에 푸시하려면

이미지를 푸시하기 전에 Amazon ECR 리포지토리가 있어야 합니다. 자세한 정보는 프라이빗 리포지토리 생성을 참조하세요.

  1. 이미지를 푸시하려는 Amazon ECR 레지스트리에 대해 Docker 클라이언트를 인증합니다. 인증 토큰은 사용되는 레지스트리마다 필요하며, 12시간 동안 유효합니다. 자세한 정보는 프라이빗 레지스트리 인증을 참조하세요.

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

    중요

    오류가 발생하면 최신 버전의 AWS CLI를 설치하거나 업그레이드합니다. 자세한 내용은 AWS Command Line Interface 사용 설명서에서 AWS Command Line Interface 설치를 참조하세요.

    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 매니페스트 목록을 검사합니다. 이렇게 하면 매니페스트 목록에서 참조되는 각 이미지 매니페스트의 크기와 다이제스트를 확인할 수 있습니다.

    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