다음을 통해 공유


아티팩트 캐시 문제 해결 가이드

이 자습서에서는 기능을 효과적으로 사용할 수 있도록 증상, 원인, 잠재적 솔루션을 식별하여 아티팩트 캐시 기능으로 사용하도록 설정된 레지스트리에 대한 가장 일반적인 문제를 해결합니다.

증상 및 원인

다음 문제 중 하나 이상이 포함될 수 있습니다.

잠재적 솔루션

캐시된 이미지는 라이브 리포지토리에 표시되지 않습니다.

ACR(Azure Container Registry)의 리포지토리에 캐시된 이미지가 표시되지 않는 문제가 있는 경우 리포지토리 경로를 확인하는 것이 좋습니다. 잘못된 리포지토리 경로로 인해 캐시된 이미지가 ACR의 리포지토리에 표시되지 않습니다.

  • Docker Hub의 로그인 서버는 docker.io입니다.
  • Microsoft 아티팩트 레지스트리의 로그인 서버는 mcr.microsoft.com입니다.

Azure Portal은 이러한 필드를 자동으로 채웁니다. 그러나 많은 Docker 리포지토리는 경로가 library/로 시작합니다. 예를 들어, hello-world 리포지토리를 캐시하려면 올바른 리포지토리 경로는 docker.io/library/hello-world입니다.

비정상 자격 증명

자격 증명은 프라이빗 리포지토리에 대한 사용자 이름 및 비밀로 작동하는 Key Vault 비밀 집합입니다. 비정상 자격 증명은 종종 이러한 비밀이 더 이상 유효하지 않기 때문에 발생합니다. Azure Portal에서 자격 증명을 선택하여 변경 내용을 편집하고 적용할 수 있습니다.

  • Azure Key Vault의 비밀이 만료되지 않았는지 확인합니다.
  • Azure Key Vault의 비밀이 유효한지 확인합니다.
  • Azure Key Vault에 대한 액세스 권한이 할당되었는지 확인합니다.

Azure Key Vault에 대한 액세스 권한을 할당하려면 다음을 수행합니다.

az keyvault set-policy --name myKeyVaultName --object-id myObjID --secret-permissions get

Key Vault에 대한 자세한 정보 Azure Key Vault에 대한 액세스 할당에 대해 자세히 알아봅니다.

캐시 규칙을 만들 수 없습니다.

캐시 규칙 제한

캐시 규칙을 만드는 동안 문제가 발생하는 경우 캐시 규칙이 1,000개가 넘게 만들어졌는지 확인하는 것이 좋습니다.

제한에 도달하지 않으려면 원치 않는 캐시 규칙을 삭제하는 것이 좋습니다.

캐시 용어에 대해 자세히 알아봅니다.

와일드카드를 사용하여 캐시 규칙을 만들 수 없습니다.

캐시 규칙을 만들려고 하는데 기존 규칙과 충돌이 있는 경우. 오류 메시지는 지정된 대상 리포지토리에 대한 와일드카드가 포함된 캐시 규칙이 이미 있음을 나타냅니다.

이 문제를 해결하려면 다음 단계를 수행해야 합니다.

  1. 충돌을 일으키는 기존 캐시 규칙을 식별합니다. 대상 리포지토리에 와일드카드(*)를 사용하는 기존 규칙을 찾습니다.

  2. 원본 리포지토리와 와일드카드가 겹치는 충돌하는 캐시 규칙을 삭제합니다.

  3. 원하는 와일드카드와 대상 리포지토리를 사용하여 새 캐시 규칙을 만듭니다.

  4. 캐시 구성을 다시 확인하여 새 규칙이 올바르게 적용되었는지, 충돌하는 다른 규칙은 없는지 확인합니다.

업스트림 지원

아티팩트 캐시는 현재 다음 업스트림 레지스트리를 지원합니다.

Warning

고객은 Docker 허브에서 원본 콘텐츠에 대해 자격 증명 집합을 생성해야 합니다.

업스트림 레지스트리 지원 가용성
Docker Hub 인증된 끌어오기만 지원합니다. Azure CLI, Azure Portal
Microsoft 아티팩트 레지스트리 인증되지 않은 끌어오기만 지원합니다. Azure CLI, Azure Portal
AWS ECR(Elastic Container Registry) 공용 갤러리 인증되지 않은 끌어오기만 지원합니다. Azure CLI, Azure Portal
GitHub Container Registry 인증된 끌어오기와 인증되지 않은 끌어오기를 모두 지원합니다. Azure CLI, Azure Portal
Quay 인증된 끌어오기와 인증되지 않은 끌어오기를 모두 지원합니다. Azure CLI, Azure Portal
registry.k8s.io 인증된 끌어오기와 인증되지 않은 끌어오기를 모두 지원합니다. Azure CLI
Google 컨테이너 레지스트리 인증된 끌어오기와 인증되지 않은 끌어오기를 모두 지원합니다. Azure CLI