聯機到 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>
偵錯控制台中的內建工具
下列診斷工具會預安裝至偵錯控制台,以協助您針對問題進行疑難解答:
- 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