共用方式為


聯機到 Azure Container Apps 中的容器偵錯控制台

Azure Container Apps 平臺提供偵錯控制台,可協助您在下列情況下對應用程式進行疑難解答:

  • 當您使用只包含應用程式和其運行時間相依性的容器,或「無散發套件」映射時,即無法連線到目標容器。
  • 遇到網路問題時,您的映像沒有偵錯公用程式來調查它們。

您可以使用 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> 

偵錯控制台中的內建工具

下列診斷工具會預安裝至偵錯控制台,以協助您針對問題進行疑難解答:

如果您要安裝其他工具,請執行 tdnf install -y <TOOL_NAME> 命令。 執行此命令之前,請將 取代 <PLACEHOLDERS> 為您的容器應用程式值。

例如,使用下列命令在偵錯控制台中安裝 JDK:

tdnf install -y msopenjdk-17

案例 - 透過偵錯控制台存取容器的文件系統

根據預設,偵錯控制台會以根使用者身分執行。

如果您的容器以根使用者身分執行,您可以存取 /proc/1 容器的文件系統。 如果您的容器未以根使用者身分執行,請執行下列命令以在存取 /proc/1 目錄之前切換使用者,否則您會收到許可權拒絕錯誤。

switch-user