다시 시작 정책으로 컨테이너 작업 실행

Azure Container Instances에서는 컨테이너를 배포하는 것이 쉽고 빠르기 때문에 컨테이너 인스턴스에서 빌드, 테스트 및 이미지 렌더링과 같은 일회성 작업을 실행하기 위한 강력한 플랫폼을 제공합니다.

구성 가능한 다시 시작 정책을 사용하면 해당 프로세스가 완료될 때 컨테이너가 중지되도록 지정할 수 있습니다. 컨테이너 인스턴스는 초 단위로 비용이 청구되기 때문에 작업을 실행하는 컨테이너가 실행되는 동안 사용된 컴퓨팅 리소스에 대해서만 요금이 부과됩니다.

이 문서에서 제시된 예제는 Azure CLI를 사용합니다. Azure CLI 버전 2.0.21 이상이 로컬로 설치되어 있거나, Azure Cloud Shell에서 CLI를 사용해야 합니다.

컨테이너 다시 시작 정책

Azure Container Instances에서 컨테이너 그룹을 만들 때 세 가지 다시 시작 정책 설정 중 하나를 지정할 수 있습니다.

다시 시작 정책 설명
Always 컨테이너 그룹의 컨테이너가 항상 다시 시작됩니다. 컨테이너를 만들 때 다시 시작 정책이 지정되지 않은 경우 적용되는 기본 설정입니다.
Never 컨테이너 그룹의 컨테이너가 절대로 다시 시작되지 않습니다. 컨테이너가 한 번만 실행됩니다.
OnFailure 컨테이너 그룹의 컨테이너가 컨테이너에서 실행된 프로세스가 실패할 때만(0이 아닌 종료 코드로 종료될 때) 다시 시작됩니다. 컨테이너가 한 번 이상 실행됩니다.

참고 항목

컨테이너 그룹이 IP 주소로 구성된 경우 컨테이너 그룹을 다시 시작할 때 해당 IP 주소가 변경될 수 있습니다.

다시 시작 정책 지정

다시 시작 정책을 지정하는 방법은 Azure CLI, Azure PowerShell cmdlet 또는 Azure Portal과 같은 컨테이너 인스턴스를 만드는 방법에 따라 달라집니다. Azure CLI에서 az container create를 --restart-policy 호출 할 때 매개 변수를 지정합니다.

az container create \
    --resource-group myResourceGroup \
    --name mycontainer \
    --image mycontainerimage \
    --restart-policy OnFailure

완료까지 실행 예제

다시 시작 정책의 작동 방식을 보려면 Microsoft aci-wordcount 이미지에서 컨테이너 인스턴스를 만들고 OnFailure 다시 시작 정책을 지정합니다. 이 예제 컨테이너는 기본적으로 셰익스피어의 햄릿 텍스트를 분석하고 STDOUT에 가장 일반적인 10개의 단어를 쓴 다음 종료하는 Python 스크립트를 실행합니다.

다음 az container create 명령을 사용하여 예제 컨테이너를 실행합니다.

az container create \
    --resource-group myResourceGroup \
    --name mycontainer \
    --image mcr.microsoft.com/azuredocs/aci-wordcount:latest \
    --restart-policy OnFailure

Azure Container Instances는 컨테이너를 시작한 다음, 애플리케이션(또는 이 경우 스크립트)이 종료될 때 컨테이너를 중지합니다. Azure Container Instances가 다시 시작 정책이 Never 또는 OnFailure인 컨테이너를 중지하면 컨테이너의 상태가 Terminated으로 설정됩니다. az container show 명령을 사용하여 컨테이너의 상태 검사 수 있습니다.

az container show \
    --resource-group myResourceGroup \
    --name mycontainer \
    --query containers[0].instanceView.currentState.state

예제 출력:

"Terminated"

예제 컨테이너의 상태가 Terminated로 표시되면 컨테이너 로그를 확인하여 작업 출력을 볼 수 있습니다. 스크립트의 출력을 보려면 az container logs 명령을 실행합니다.

az container logs --resource-group myResourceGroup --name mycontainer

출력

[('the', 990),
 ('and', 702),
 ('of', 628),
 ('to', 610),
 ('I', 544),
 ('you', 495),
 ('a', 453),
 ('my', 441),
 ('in', 399),
 ('HAMLET', 386)]

이 예제는 스크립트가 STDOUT으로 보낸 출력을 보여 줍니다. 그러나 컨테이너화된 작업은 나중에 검색할 수 있도록 출력을 영구 스토리지에 쓸 수 있습니다. 예를 들어 Azure 파일 공유대해

다음 단계

여러 컨테이너를 사용하여 큰 데이터 세트를 일괄 처리하는 것과 같은 작업 기반 시나리오는 런타임에 사용자 지정 환경 변수 또는 명령줄을 활용할 수 있습니다.

완료될 때까지 실행되는 컨테이너 출력을 유지하는 방법에 대한 자세한 내용은 Azure Container Instances를 사용하여 Azure 파일 공유 탑재를 참조하세요.