你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
连接到 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
命令中加入以下参数。
Argument | 说明 |
---|---|
--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
- nc
- 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