连接到 Azure 容器应用中的容器调试控制台

Azure 容器应用平台提供调试控制台,便于在以下情况下对应用程序进行故障排除:

  • 使用仅包含应用程序及其运行时依赖项的容器或“无分发版”映像时,无法连接到目标容器。
  • 遇到网络问题时,映像没有调试实用程序可用于调查问题。

可以使用 Azure CLI 连接到调试控制台。

注意

调试控制台创建一个单独的容器,此容器与运行应用的容器共享基础资源。 如果调试容器已存在,调试控制台会重复利用现有容器,而不是创建新容器。 每个容器应用副本最多一个运行的调试容器。 如果无需调试容器保持运行状态,请在调试控制台会话中输入 exit 或使用 Ctrl/Cmd + D

Azure 命令行接口 (CLI)

若要连接到容器控制台,请使用 az containerapp debug 命令。 若要退出控制台,请输入 exit 或使用 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/cwd/ 目录访问容器的文件系统。 如果容器未作为根用户运行,请在访问 /proc/1/cwd/ 目录之前运行以下命令,否则会收到权限被拒绝错误。

switch-user

有关详细信息,请参阅以下 Linux 手册页: