dotTrace 2026.1 Help

Docker コンテナー内のプロファイルアプリケーション

.NET アプリケーションが Docker コンテナー内で実行されている場合、dotTrace コマンドラインプロファイラーを使用してプロファイリングします。 プロファイラーをダウンロードしてプロファイリングセッションを開始するには、コンテナーシェルにアクセスできる必要があります。

  1. Docker を実行しているホストマシンにログインします。

  2. アプリケーションコンテナーと通信できるようにするには、その ID または名前を知る必要があります。 取得するには、次を実行します。

    docker ps

    出力例:

    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e58110265dd6 my-aspnet-app "dotnet MyAspNetApp.…" 22 hours ago Up 22 hours 0.0.0.0:5142->5142/tcp my-aspnet-app-container

    ここで、 e58110265dd6 はコンテナー ID で、 my-aspnet-app-container は名前です。

  3. Docker コンテナー内でシェルセッションを開始します。 sh/bin/bash など、イメージ OS に応じて異なるコマンドラインインタープリターを使用できます。

    docker exec -it {container_ID_or_name} sh

    例えば:

    docker exec -it my-aspnet-app-container sh
  4. コンテナー内で、dotTrace コマンドラインツールをダウンロードして、たとえば dotTrace フォルダーに解凍します:

    apt-get update -y && apt-get install -y wget && \ wget -O dotTraceclt.zip https://www.nuget.org/api/v2/package/JetBrains.dotTrace.CommandLineTools.linux-x64 && \ apt-get install -y unzip && \ unzip dotTraceclt.zip -d ./dotTrace && \ chmod +x -R dotTrace/*

    ここに:

    • apt は、Debian ベースのシステム用のパッケージマネージャーです。 OS が他のパッケージマネージャーを使用している場合は、 apt の代わりにそれを使用します。

    • JetBrains.dotTrace.CommandLineTools.linux-x64 は、Linux x64 システムのパッケージ名です。 この名前は、ターゲットプラットフォームによって異なります。 ここ で、さまざまなプラットフォーム向けのパッケージ一覧を確認できます。

  5. プロファイリングするプロセスにアタッチする前に、プロセス ID を取得する必要があります。

    ps aux

    Linux ディストリビューションで ps コマンドが利用できない場合は、次のようにインストールします。

    apt-get update && apt-get install procps

    出力例:

    # ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 1.2 276055932 200960 ? Ssl Mar23 0:21 dotnet MyAspNetApp.dll --urls http://*:5142 root 914 0.0 0.0 2480 580 pts/0 Ss 05:33 0:00 sh root 2171 0.0 0.0 6756 2940 pts/0 R+ 12:55 0:00 ps aux
  6. プロセスをプロファイリングします。 例: PID 1 でプロセスにアタッチし、stdin メッセージを使用してスナップショットを取得するには:

    ./dotTrace/tools/dottrace attach 1 --service-input=stdin

    スナップショットを取得するには、次を送信します。

    ##dotTrace["get-snapshot"]

    コマンドラインツールの使用方法の詳細については、対応する トピックを参照してください。

  7. プロファイリングを停止して収集したデータを保存するには、 Ctrl+C を押します。

  8. コンテナーでシェルセッションを終了するには、 exit を実行します。

  9. スナップショットファイルをホストマシンにコピーします。 dotTrace は、スナップショットを複数のファイル (例: somename.dtpsomename.dtp.0000somename.dtp.0001 など) として保存することに注意してください。 最初にコンテナー内のアーカイブに配置する必要があります。 ホストマシンで次の手順を実行します。

    1. アーカイブを作成します。

      docker exec my-aspnet-app-container sh -c "tar -czf /tmp/snapshot.tar.gz /app/somename.dtp*"
    2. アーカイブをホストにコピーします。

      docker cp my-aspnet-app-container:/tmp/snapshot.tar.gz /home/username/Snapshots/snapshot.tar.gz
    3. アーカイブを解凍します。

      tar -xzf /home/username/Snapshots/snapshot.tar.gz -C /home/username/Snapshots
  10. 収集したスナップショットを分析します

2026 年 6 月 12 日