Azure Container Registry 소개
Azure Container Registry는 오픈 소스 Docker Registry 2.0을 기반으로 하는 관리형 레지스트리 서비스입니다. Azure 컨테이너 레지스트리를 만들고 유지 관리하여 컨테이너 이미지와 관련 아티팩트를 저장하고 관리합니다.
기존 컨테이너 개발 및 배포 파이프라인과 함께 Azure Container Registry를 사용하거나 Azure Container Registry 작업을 사용하여 Azure에서 컨테이너 이미지를 빌드합니다. 주문형으로 빌드할 수도 있고 소스 코드 커밋, 기본 이미지 업데이트 등의 트리거를 사용하여 빌드를 완전히 자동화할 수도 있습니다.
Docker 및 레지스트리 개념에 대해 자세히 알아보려면 Docker Docs의 Docker 개요 및 레지스트리, 리포지토리 및 이미지 정보를 참조하세요.
사용 사례
Azure Container Registry에서 다양한 배포 대상으로 이미지 끌어오기:
- 확장성 있는 오케스트레이션 시스템: Kubernetes, DC/OS 및 Docker Swarm을 포함하는 호스트 클러스터에서 컨테이너화된 애플리케이션을 관리합니다.
- Azure 서비스: AKS(Azure Kubernetes Service), App Service, Batch, Service Fabric 등과 같은 애플리케이션을 대규모로 빌드하고 실행할 수 있도록 지원합니다.
개발자는 컨테이너 개발 워크플로의 일환으로 컨테이너 레지스트리에 밀어넣을 수도 있습니다. 예를 들어 Azure Pipelines 또는 Jenkins와 같은 CI/CD(연속 통합 및 지속적인 업데이트) 도구의 컨테이너 레지스트리를 대상으로 지정할 수 있습니다.
기본 이미지가 업데이트될 때 애플리케이션 이미지가 자동으로 다시 작성되거나 팀이 Git 리포지토리에 코드를 커밋할 때 이미지 빌드를 자동화하도록 Azure Container Registry 작업을 구성합니다. 클라우드에서 컨테이너 이미지를 병렬로 작성 및 테스트하고 패치를 적용하는 작업을 자동화하는 여러 단계 작업을 만듭니다.
Azure에는 컨테이너 레지스트리를 관리하는 Azure CLI, Azure Portal 및 API 지원 같은 도구가 제공됩니다. 선택적으로 Visual Studio Code용 Docker 확장과 Azure 계정 확장을 설치합니다. 이러한 확장을 사용하여 Visual Studio Code 내에서 컨테이너 레지스트리에서 이미지를 가져오거나, 이미지를 컨테이너 레지스트리로 푸시하거나, Azure Container Registry 작업을 실행할 수 있습니다.
주요 특징
레지스트리 서비스 계층: Azure 구독에서 하나 이상의 컨테이너 레지스트리를 만듭니다. 레지스트리는 기본, 표준 및 프리미엄의 세 가지 계층으로 제공됩니다. 각 계층은 웹후크 통합, Microsoft Entra ID를 사용한 레지스트리 인증 및 삭제 기능을 지원합니다.
배포와 동일한 Azure 위치에 레지스트리를 만들어 컨테이너 이미지의 닫힌 네트워크 로컬 스토리지를 활용합니다. 고급 복제 및 컨테이너 이미지 배포의 경우 프리미엄 등록의 지역에서 복제 기능을 사용합니다.
보안 및 액세스: Azure CLI 또는 표준
docker login
명령을 사용하여 레지스트리에 로그인합니다. Azure Container Registry는 HTTPS를 통해 컨테이너 이미지를 전송하고, 클라이언트 연결을 보호하기 위해 TLS를 지원합니다.Important
2020년 1월 13일부터 Azure Container Registry는 TLS 1.2를 사용하기 위해 서버 및 애플리케이션의 모든 보안 연결이 필요합니다. 최신 Docker 클라이언트(버전 18.03.0 이상)를 사용하여 TLS 1.2를 사용하도록 설정합니다.
Azure ID, Microsoft Entra 서비스 주체 또는 제공된 관리자 계정을 사용하여 컨테이너 레지스트리에 대한 액세스를 제어합니다. Azure RBAC(역할 기반 액세스 제어)를 사용하여 사용자 또는 시스템에 특정 레지스트리 권한을 할당합니다.
프리미엄 서비스 계층의 보안 기능에는 이미지 태그 서명에 대한 콘텐츠 신뢰 및 레지스트리에 대한 액세스를 제한하는 방화벽 및 가상 네트워크(미리 보기)가 포함됩니다. 클라우드용 Microsoft Defender는 필요에 따라 Azure Container Registry와 통합하여 이미지를 레지스트리에 푸시할 때마다 이미지를 검사합니다.
지원되는 이미지 및 아티팩트: 이미지가 리포지토리에서 그룹화되는 경우 각 이미지는 Docker 호환 컨테이너의 읽기 전용 스냅샷입니다. Azure 컨테이너 레지스트리는 Windows 및 Linux 이미지 모두를 포함할 수 있습니다. 모든 컨테이너 배포의 이미지 이름을 제어합니다.
표준 Docker 명령을 사용하여 이미지를 리포지토리로 밀어넣거나 이미지를 리포지토리에서 끌어옵니다. Azure Container Registry는 Docker 컨테이너 이미지 외에도 Helm 차트와 같은 관련 콘텐츠 형식 및 OCI(Open Container Initiative) 이미지 형식 사양에 빌드된 이미지를 저장합니다.
자동화된 이미지 빌드: Azure Container Registry 작업을 사용하여 Azure에서 이미지의 빌드, 테스트, 푸시 및 배포를 간소화합니다. 예를 들어 Azure Container Registry 작업을 사용하여
docker build
작업을 Azure로 오프로딩하면 개발 내부 루프를 클라우드로 확장할 수 있습니다. 컨테이너 OS 및 프레임워크 패치 파이프라인을 자동화하고, 팀에서 코드를 소스 제어로 커밋하면 자동으로 이미지를 빌드하도록 빌드 작업을 구성하세요.다중 단계 작업은 클라우드에서 컨테이너 이미지를 빌드, 테스트 및 패치하기 위한 단계 기반 작업 정의 및 실행을 지원합니다. 작업 단계에서는 컨테이너 이미지에 대한 개별 빌드 및 푸시 작업을 정의합니다. 해당 실행 환경으로 컨테이너를 사용하여 각 단계로 하나 이상의 컨테이너 실행을 정의할 수도 있습니다.