다음을 통해 공유


Azure Container Apps에서 컨테이너 디버그 콘솔에 연결

Azure Container Apps 플랫폼은 다음과 같은 상황에서 애플리케이션 문제를 해결하는 데 도움이 되는 디버깅 콘솔을 제공합니다.

  • 애플리케이션 및 해당 런타임 종속성만 포함된 컨테이너 또는 "배포판 없는" 이미지를 사용하는 경우 대상 컨테이너에 연결할 수 없습니다.
  • 네트워킹 문제가 발생하면 이미지에 조사할 디버깅 유틸리티가 없습니다.

Azure CLI를 사용하여 디버그 콘솔에 연결할 수 있습니다.

참고 항목

디버그 콘솔은 앱이 실행 중인 컨테이너와 기본 리소스를 공유하는 별도의 컨테이너를 만듭니다. 디버그 컨테이너가 이미 있는 경우 디버그 콘솔은 새 컨테이너를 만드는 대신 기존 컨테이너를 다시 사용합니다. 컨테이너 앱 복제본당 실행 중인 디버그 컨테이너가 하나 이상 있습니다. 디버그 컨테이너를 계속 실행할 필요가 없는 경우 종료를 입력하거나 디버그 콘솔 세션에서 Ctrl/Cmd + D를 사용합니다.

Azure CLI

디버그 콘솔 컨테이너에 연결하려면 명령을 사용합니다 az containerapp debug . 콘솔을 종료하려면 종료를 입력하거나 Ctrl/Cmd + D를 사용합니다.

예를 들어 다음 명령을 사용하여 단일 컨테이너를 사용하여 컨테이너 앱의 컨테이너 디버그 콘솔에 연결합니다. 이 명령을 실행하기 전에 컨테이너 앱의 값으로 바꿉 <PLACEHOLDERS> 다.

az containerapp debug \
  --name <CONTAINER_APP_NAME> \
  --resource-group <RESOURCE_GROUP>

여러 수정 버전, 복제본 및 컨테이너가 있는 컨테이너 앱에서 컨테이너 디버그 콘솔에 연결하려면 명령에 다음 매개 변수를 az containerapp debug 포함합니다.

인수 설명
--revision 디버그할 컨테이너의 수정 이름입니다.
--replica 디버그할 컨테이너의 복제본 이름입니다.
--container 디버그할 컨테이너의 컨테이너 이름입니다.

az containerapp revision list 명령을 사용하여 수정 버전을 가져올 수 있습니다. 이 명령을 실행하기 전에 컨테이너 앱의 값으로 바꿉 <PLACEHOLDERS> 다.

az containerapp revision list \
  --name <CONTAINER_APP_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --query "[].name"

az containerapp replica list 명령을 사용하여 복제본 및 컨테이너 이름을 가져옵니다. 이 명령을 실행하기 전에 컨테이너 앱의 값으로 바꿉 <PLACEHOLDERS> 다.

az containerapp replica list \
  --name <CONTAINER_APP_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --revision <REVISION_NAME> \
  --query "[].{Containers:properties.containers[].name, Name:name}"

명령을 사용하여 컨테이너 디버그 콘솔에 연결합니다 az containerapp debug . 이 명령을 실행하기 전에 컨테이너 앱의 값으로 바꿉 <PLACEHOLDERS> 다.

az containerapp debug \
  --name <CONTAINER_APP_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --revision <REVISION_NAME> \
  --replica <REPLICA_NAME> \
  --container <CONTAINER_NAME> 

디버그 콘솔의 기본 제공 도구

다음 진단 도구는 문제를 해결하는 데 도움이 되도록 디버그 콘솔에 미리 설치됩니다.

다른 도구를 설치하려면 명령을 실행합니다 tdnf install -y <TOOL_NAME> . 이 명령을 실행하기 전에 컨테이너 앱의 값으로 바꿉 <PLACEHOLDERS> 다.

예를 들어 다음 명령을 사용하여 디버그 콘솔에 JDK를 설치합니다.

tdnf install -y msopenjdk-17

시나리오 - 디버그 콘솔을 통해 컨테이너의 파일 시스템에 액세스

기본적으로 디버그 콘솔은 루트 사용자로 실행됩니다.

컨테이너가 루트 사용자로 실행되는 경우 컨테이너의 파일 시스템에 액세스하기 위해 액세스할 /proc/1 수 있습니다. 컨테이너가 루트 사용자로 실행되지 않는 경우 아래 명령을 실행하여 디렉터리에 액세스 /proc/1 하기 전에 사용자를 전환하거나 권한 거부 오류가 발생합니다.

switch-user