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>
디버그 콘솔의 기본 제공 도구
다음 진단 도구는 문제를 해결하는 데 도움이 되도록 디버그 콘솔에 미리 설치됩니다.
- ip-utils
- net-tools
- procps
- lsof
- util-linux
- 노스캐롤라이나
- wget
- openssl
- traceroute
- ca-certificates
- bind-utils
- tcpping
다른 도구를 설치하려면 명령을 실행합니다 tdnf install -y <TOOL_NAME>
. 이 명령을 실행하기 전에 컨테이너 앱의 값으로 바꿉 <PLACEHOLDERS>
다.
예를 들어 다음 명령을 사용하여 디버그 콘솔에 JDK를 설치합니다.
tdnf install -y msopenjdk-17
시나리오 - 디버그 콘솔을 통해 컨테이너의 파일 시스템에 액세스
기본적으로 디버그 콘솔은 루트 사용자로 실행됩니다.
컨테이너가 루트 사용자로 실행되는 경우 컨테이너의 파일 시스템에 액세스하기 위해 액세스할 /proc/1
수 있습니다. 컨테이너가 루트 사용자로 실행되지 않는 경우 아래 명령을 실행하여 디렉터리에 액세스 /proc/1
하기 전에 사용자를 전환하거나 권한 거부 오류가 발생합니다.
switch-user