次の方法で共有


Azure Container Apps でコンテナー デバッグ コンソールに接続する

Azure Container Apps プラットフォームには、次の状況でアプリケーションをトラブルシューティングするのに役立つデバッグ コンソールが用意されています。

  • アプリケーションとランタイム依存関係のみを含むコンテナー、または "ディストリビューションレス" イメージを使用している場合に、ターゲット コンテナーに接続できない場合。
  • ネットワークの問題が発生したとき、イメージにはその問題を調査するためのデバッグ ユーティリティが含まれていない場合。

Azure CLI を使用してデバッグ コンソールに接続できます。

Note

デバッグ コンソールは別のコンテナーを作成し、基となるリソースをアプリが実行されているコンテナーと共有します。 デバッグ コンテナーが既に存在する場合、デバッグ コンソールは新しいコンテナーを作成せずに既存のコンテナーを再利用します。 コンテナー アプリ レプリカごとに実行されるデバッグ コンテナーは最大で 1 つです。 デバッグ コンテナーを実行し続ける必要がない場合は、デバッグ コンソール セッションで「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 にアクセスしてコンテナーのファイル システムにアクセスできます。 コンテナーがルート ユーザーとして実行されていない場合は、/proc/1 のディレクトリにアクセスする前に、以下のコマンドを実行してユーザーを切り替えないと、アクセス許可が拒否されたというエラーが発生します。

switch-user