Herstellen einer Verbindung mit einer Containerdebugkonsole in Azure Container Apps
Die Azure-Container-Apps-Plattform bietet eine Debugkonsole, die Ihnen bei der Problembehandlung Ihrer Anwendung unter den folgenden Umständen hilft:
- Sie können keine Verbindung zum Zielcontainer herstellen, wenn Sie einen Container verwenden, der nur die Anwendung und ihre Laufzeitabhängigkeiten enthält, oder ein „distroloses“ Image.
- Wenn Netzwerkprobleme auftreten, verfügen Ihre Bilder nicht über Debugging-Dienstprogramme, um sie zu untersuchen.
Sie können eine Verbindung mit der Debugkonsole über die Azure CLI herstellen.
Hinweis
Die Debugkonsole erstellt einen separaten Container, der die zugrunde liegenden Ressourcen mit dem Container teilt, in dem Ihre App ausgeführt wird. Wenn bereits ein Debugcontainer vorhanden ist, verwendet die Debugkonsole die vorhandene, anstatt eine neue zu erstellen. Es gibt höchstens einen laufenden Debug-Container pro Container-App-Replikat. Wenn Sie keinen Debugcontainer ausführen müssen, geben Sie Beenden ein, oder verwenden Sie STRG/CMD+D- in der Debugkonsolensitzung.
Azure-Befehlszeilenschnittstelle
Um eine Verbindung mit einem Container herzustellen, verwenden Sie den Befehl az containerapp debug
. Um die Konsole zu beenden, geben Sie Beenden ein, oder verwenden Sie STRG/CMD +D.
Mit dem folgenden Befehl können Sie beispielsweise eine Verbindung mit einer Containerdebugkonsole in einer Container-App mit einem einzelnen Container herstellen. Ersetzen Sie vor dem Ausführen dieses Befehls die <PLACEHOLDERS>
durch die Werte Ihrer Container-App.
az containerapp debug \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP>
Sie können eine Verbindung mit einer Containerdebugkonsole in einer Container-App mit mehreren Revisionen, Replikaten und Containern herstellen, indem Sie die folgenden Parameter in den Befehl az containerapp debug
einschließen.
Argument | Beschreibung |
---|---|
--revision |
Der Überarbeitungsname des zu debuggenden Containers. |
--replica |
Der Replikatname des zu debuggenden Containers. |
--container |
Der Containername des zu debuggenden Containers. |
Sie können die Revisionsnamen mit dem Befehl az containerapp revision list
abrufen. Ersetzen Sie vor dem Ausführen dieses Befehls die <PLACEHOLDERS>
durch die Werte Ihrer Container-App.
az containerapp revision list \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP> \
--query "[].name"
Verwenden Sie den Befehl az containerapp replica list
, um die Replikat- und Containernamen abzurufen. Ersetzen Sie vor dem Ausführen dieses Befehls die <PLACEHOLDERS>
durch die Werte Ihrer Container-App.
az containerapp replica list \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP> \
--revision <REVISION_NAME> \
--query "[].{Containers:properties.containers[].name, Name:name}"
Stellen Sie mit dem Befehl az containerapp debug
eine Verbindung mit der Containerdebugkonsole her. Ersetzen Sie vor dem Ausführen dieses Befehls die <PLACEHOLDERS>
durch die Werte Ihrer Container-App.
az containerapp debug \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP> \
--revision <REVISION_NAME> \
--replica <REPLICA_NAME> \
--container <CONTAINER_NAME>
Integrierte Tools in der Debugkonsole
Die folgenden Diagnosetools sind in der Debugkonsole vorinstalliert, um Probleme zu beheben:
- ip-utils
- net-tools
- procps
- lsof
- util-linux
- nc
- Wget
- openssl
- traceroute
- ca-certificates
- bind-utils
- tcpping
Wenn Sie andere Tools installieren möchten, führen Sie den Befehl tdnf install -y <TOOL_NAME>
aus. Ersetzen Sie vor dem Ausführen dieses Befehls die <PLACEHOLDERS>
durch die Werte Ihrer Container-App.
Installieren Sie z. B. JDK in der Debugkonsole mit dem folgenden Befehl:
tdnf install -y msopenjdk-17
Szenario : Zugreifen auf das Dateisystem des Containers über die Debugkonsole
Standardmäßig wird die Debugkonsole als Stammbenutzer ausgeführt.
Sie können auf /proc/1
zugreifen, um auf das Dateisystem des Containers zuzugreifen, wenn Ihr Container als Stammbenutzer ausgeführt wird. Wenn Ihr Container nicht als Stammbenutzer ausgeführt wird, führen Sie den folgenden Befehl aus, um den Benutzer zu wechseln, bevor Sie auf das /proc/1
-Verzeichnis zugreifen, oder Sie erhalten einen Fehler bei der Berechtigung verweigert.
switch-user