Azure Container Registry에 컨테이너 이미지 푸시

Completed

이 단원에서는 Azure Container Registry 서비스를 사용하여 컨테이너 이미지를 Azure 컨테이너 레지스트리에 푸시합니다. Azure Container Registry를 사용하면 모든 유형의 컨테이너 배포에 대한 프라이빗 레지스트리에서 컨테이너 이미지 및 아티팩트를 빌드, 저장 및 관리할 수 있습니다. 기존 컨테이너 개발 및 배포 파이프라인에서 Azure 컨테이너 레지스트리를 사용합니다.

비고

세션이 유휴 상태이거나 다른 특정 시점 또는 다른 CLI에서 이 단계를 수행하는 경우 다음 명령을 사용하여 환경 변수를 다시 초기화하고 다시 인증해야 할 수 있습니다.

설정에 사용되는 리소스 변수 값을 복원합니다. 아래 <your-subscription-ID>를 이 모듈에 사용한 구독 ID로 바꿉니다. 로그인에 구독 선택기가 표시되면 동일한 구독을 선택합니다. 인증 명령을 한 번에 하나씩 실행합니다. az account show 후, 계속하기 전에 활성 구독이 설정과 일치하는지 확인합니다. 명령이 실패하면 작업을 중지하고 오류를 해결합니다.

export AZ_RESOURCE_GROUP=java-containerization-demo-rg
export AZ_CONTAINER_REGISTRY=<your-container-registry>
export AZ_KUBERNETES_CLUSTER=java-containerization-demo-aks
export AZ_LOCATION=<your-Azure-region>
export AZ_KUBERNETES_CLUSTER_DNS_PREFIX=<your-unique-DNS-prefix-to-access-your-AKS-cluster>
az login
az account set --subscription "<your-subscription-ID>"
az account show --output table
az acr login --name "$AZ_CONTAINER_REGISTRY"

컨테이너 이미지 푸시

새로 빌드된 컨테이너 이미지를 Azure 컨테이너 레지스트리에 푸시할 수 있습니다. 이렇게 하면 컨테이너 이미지는 AKS(Azure Kubernetes Service) 클러스터와 같은 모든 Azure 리소스에 가까운 네트워크입니다. 나중에 AKS가 레지스트리에서 flightbookingsystemsample 이미지를 가져오도록 구성합니다. 컨테이너 이미지를 레지스트리에 푸시하려면 다음 단계를 사용합니다.

  1. 아직 로그인하지 않은 경우 다음 명령을 사용하여 Azure Container Registry에 로그인합니다.

    az acr login
    
  2. 태그를 지정하거나 푸시하기 전에 실제 로컬 이미지를 검사합니다.

    docker image inspect flightbookingsystemsample:latest \
      --format '{{.Os}}/{{.Architecture}}'
    

    이 경로의 경우 결과는 linux/amd64이어야 합니다. 다르면 계속하기 전에 이전 단원에서 설명한 대로 --platform linux/amd64를 사용하여 이미지를 다시 빌드하고 실행하세요. 태그 지정 및 푸시는 이미지 플랫폼을 유지합니다. 이미지의 아키텍처를 변경하지 않습니다.

  3. 다음 명령을 사용하여 Azure 컨테이너 레지스트리를 사용하여 이전에 빌드한 컨테이너 이미지에 태그를 지정합니다.

    docker tag flightbookingsystemsample $AZ_CONTAINER_REGISTRY.azurecr.io/flightbookingsystemsample
    
  4. 다음 명령을 사용하여 컨테이너 이미지를 Azure 컨테이너 레지스트리에 푸시합니다.

    docker push $AZ_CONTAINER_REGISTRY.azurecr.io/flightbookingsystemsample
    
  5. 푸시가 완료되면 다음 명령을 사용하여 새로 푸시된 이미지의 Azure Container Registry 이미지 메타데이터를 볼 수 있습니다.

    az acr repository show \
        --name $AZ_CONTAINER_REGISTRY \
        --image flightbookingsystemsample:latest
    

다음 이력 메타데이터는 예시입니다. 업데이트된 이미지를 빌드하고 푸시한 후 이미지 다이제스트와 타임스탬프가 다를 수 있습니다.

{
  "changeableAttributes": {
    "deleteEnabled": true,
    "listEnabled": true,
    "readEnabled": true,
    "writeEnabled": true
  },
  "createdTime": "2024-11-15T12:23:55.5624474Z",
  "digest": "sha256:13851640a3****************************************f7f1e482c6eaa825",
  "lastUpdateTime": "2024-11-15T12:23:55.5624474Z",
  "name": "latest",
  "signed": false
}

이제 컨테이너 이미지가 Azure 컨테이너 레지스트리 내에 있으며 AKS와 같은 Azure 서비스에서 배포할 준비가 되었습니다.