Amazon ECR에서 풀 스루 캐시 문제 해결하기
Amazon ECR에서 풀 스루 캐시 문제 해결하기 (Troubleshooting pull through cache issues in Amazon ECR)
풀 스루 캐시 규칙을 사용해 업스트림 이미지를 풀할 때 발생할 수 있는 가장 흔한 오류와 해결 방법을 안내해요.
출처: 문서
본문
풀 스루 캐시 규칙을 사용해 업스트림 이미지를 풀할 때 받을 수 있는 가장 흔한 오류는 다음과 같아요.
레포지토리가 존재하지 않음 (Repository does not exist)
레포지토리가 존재하지 않는다는 오류는 대부분 Amazon ECR 프라이빗 레지스트리에 레포지토리가 존재하지 않거나, 업스트림 이미지를 풀하는 IAM 프린시펄에 ecr:CreateRepository 권한이 부여되지 않았기 때문에 발생해요. 이 오류를 해결하려면 풀 명령의 레포지토리 URI가 올바른지, 업스트림 이미지를 풀하는 IAM 프린시펄에 필요한 IAM 권한이 부여되었는지, 또는 업스트림 이미지가 푸시될 레포지토리가 업스트림 이미지 풀 전에 Amazon ECR 프라이빗 레지스트리에 생성되었는지 확인해야 해요. 필요한 IAM 권한에 대한 자세한 내용은 "IAM permissions required to sync an upstream registry with an Amazon ECR private registry"를 참고하세요.
다음은 이 오류의 예시예요.
Error response from daemon: repository 111122223333.dkr.ecr.us-east-1.amazonaws.com/ecr-public/amazonlinux/amazonlinux not found: name unknown: The repository with name 'ecr-public/amazonlinux/amazonlinux' does not exist in the registry with id '111122223333'
요청한 이미지를 찾을 수 없음 (Requested image not found)
이미지를 찾을 수 없다는 오류는 대부분 업스트림 레지스트리에 이미지가 존재하지 않거나, 업스트림 이미지를 풀하는 IAM 프린시펄에 ecr:BatchImportUpstreamImage 권한이 부여되지 않았지만 Amazon ECR 프라이빗 레지스트리에는 레포지토리가 이미 생성되었기 때문에 발생해요. 이 오류를 해결하려면 업스트림 이미지와 이미지 태그 이름이 올바르고 존재하는지, 업스트림 이미지를 풀하는 IAM 프린시펄에 필요한 IAM 권한이 부여되었는지 확인해야 해요. 필요한 IAM 권한에 대한 자세한 내용은 "IAM permissions required to sync an upstream registry with an Amazon ECR private registry"를 참고하세요.
다음은 이 오류의 예시예요.
Error response from daemon: manifest for 111122223333.dkr.ecr.us-east-1.amazonaws.com/ecr-public/amazonlinux/amazonlinux:latest not found: manifest unknown: Requested image not found
Docker Hub 레포지토리에서 풀할 때 403 Forbidden
Docker Official Image로 태그된 Docker Hub 레포지토리에서 풀할 때는 사용하는 URI에 /library/ 를 포함해야 해요. 예를 들어 aws_account_id .dkr.ecr. region .amazonaws.com/docker-hub /library/ image_name:tag 입니다. Docker Hub 공식 이미지에 대해 /library/ 를 생략하면 풀 스루 캐시 규칙으로 이미지를 풀하려고 할 때 403 Forbidden 오류가 반환돼요. 자세한 내용은 "Pulling an image with a pull through cache rule in Amazon ECR"을 참고하세요.
다음은 이 오류의 예시예요.
Error response from daemon: failed to resolve reference "111122223333.dkr.ecr.us-west-2.amazonaws.com/docker-hub/amazonlinux:2023": pulling from host 111122223333.dkr.ecr.us-west-2.amazonaws.com failed with status code [manifests 2023]: 403 Forbidden