Azure 容器应用平台提供调试控制台,便于在以下情况下对应用程序进行故障排除:
- 使用仅包含应用程序及其运行时依赖项的容器或“无分发版”映像时,无法连接到目标容器。
- 当遇到网络问题时,您的镜像缺少调试实用工具来进行调查。
可以使用 Azure CLI 连接到调试控制台。
备注
调试控制台创建一个单独的容器,此容器与运行应用的容器共享基础资源。 如果调试容器已存在,调试控制台会重复利用现有容器,而不是创建新容器。 每个容器应用副本最多只有一个调试容器。 如果不需要让调试容器持续运行,可以在调试控制台会话中输入命令 exit 或使用 Ctrl/Cmd + D。
若要连接到容器调试控制台,请使用 az containerapp debug
命令。 若要退出控制台,请输入 exit 或使用 Ctrl/Cmd + D。
例如,使用以下命令连接到包含单个容器的容器应用中的容器调试控制台。 在运行此命令之前,请将 <PLACEHOLDERS>
替换为容器应用的值。
az containerapp debug \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP>
若要连接到包含多个修订、副本和容器的容器应用中的容器调试控制台,请在 az containerapp debug
命令中加入以下参数。
论点 | DESCRIPTION |
---|---|
--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-to-app-user