Amazon ECR에서 지원하는 컨테이너 이미지 매니페스트 형식

Amazon ECR에서 지원하는 컨테이너 이미지 매니페스트 형식

Amazon ECR은 컨테이너 이미지 매니페스트 형식이 다양하다는 점을 고려해 여러 형식을 지원해요. 어떤 형식으로 이미지를 저장하고 꺼내는지 이해하면, 오래된 Docker 클라이언트와도 호환되는 저장소를 운영할 수 있어요.

출처: 문서

본문

Amazon ECR은 다음 컨테이너 이미지 매니페스트 형식을 지원해요.

  • Docker Image Manifest V2 Schema 1 (Docker 버전 1.9 이하에서 사용)
  • Docker Image Manifest V2 Schema 2 (Docker 버전 1.10 이상에서 사용)
  • Open Container Initiative (OCI) Specifications (v1.0 및 v1.1)

Docker Image Manifest V2 Schema 2에 대한 지원은 다음 기능을 제공해요.

  • 단일 이미지에 여러 태그를 사용할 수 있는 기능
  • Windows 컨테이너 이미지 저장 지원

Amazon ECR 이미지 매니페스트 변환

Amazon ECR에 이미지를 push 하고 pull 할 때, 컨테이너 엔진 클라이언트(예: Docker)는 레지스트리와 통신하면서 클라이언트와 레지스트리 양쪽이 이해할 수 있는 매니페스트 형식에 합의해요.

Docker 버전 1.9 이하로 Amazon ECR에 이미지를 push 하면 이미지 매니페스트 형식이 Docker Image Manifest V2 Schema 1로 저장돼요. Docker 버전 1.10 이상으로 push 하면 Docker Image Manifest V2 Schema 2로 저장돼요.

태그(tag)로 Amazon ECR에서 이미지를 pull 하면 Amazon ECR은 저장소에 저장된 이미지 매니페스트 형식을 반환해요. 단, 그 형식이 클라이언트가 이해할 수 있는 경우에만 그래요. 저장된 이미지 매니페스트 형식을 클라이언트가 이해하지 못하면 Amazon ECR은 그 이미지 매니페스트를 클라이언트가 이해할 수 있는 형식으로 변환해요. 예를 들어 Docker 1.9 클라이언트가 Docker Image Manifest V2 Schema 2로 저장된 이미지 매니페스트를 요청하면, Amazon ECR은 그 매니페스트를 Docker Image Manifest V2 Schema 1 형식으로 반환해요.

다음 표는 이미지를 태그(tag)로 pull 할 때 Amazon ECR이 지원하는 변환을 설명해요.

클라이언트가 요청한 스키마 ECR에 V2, schema 1로 push 됨 ECR에 V2, schema 2로 push 됨 ECR에 OCI로 push 됨
V2, schema 1 번역 불필요 V2, schema 1로 변환 변환 불가
V2, schema 2 변환 불가, 클라이언트가 V2, schema 1로 폴백 번역 불필요 V2, schema 2로 변환
OCI 변환 불가 OCI로 변환 번역 불필요

중요: 다이제스트(digest)로 이미지를 pull 하면 변환이 불가능해요. 이 경우 클라이언트가 Amazon ECR에 저장된 이미지 매니페스트 형식을 반드시 이해해야 해요. Docker 1.9 이하 클라이언트에서 다이제스트로 Docker Image Manifest V2 Schema 2 이미지를 요청하면 이미지 pull이 실패해요. 자세한 내용은 Docker 문서의 '레지스트리 호환성'을 참고해요. 이 예시에서 같은 이미지를 태그(tag)로 요청하면 Amazon ECR은 이미지 매니페스트를 클라이언트가 이해할 수 있는 형식으로 변환하고, 이미지 pull은 성공해요.

더 알아보기 (Learn more)