Docker コンテナー上で実行されているプロセスにアタッチする
Visual Studio を使用して、Windows Docker コンテナーまたは Linux .NET Core Docker コンテナーで実行されているアプリをデバッグできます。
前提条件
Linux サーバー上にまだ存在しない場合は、SSH サーバーをインストールする必要があります。curl または wget で解凍してインストールします。 たとえば、Ubuntu では、以下を実行して行うことができます。
sudo apt-get install openssh-server unzip curl
セキュリティで保護されたファイル転送プロトコル (SFTP) も有効にする必要があります。 ほとんどの SSH ディストリビューションでは既定で SFTP がインストールされ、有効化されますが、必ずそうなるわけではありません。
Linux Docker コンテナー上で実行されているプロセスにアタッチする
[プロセスにアタッチ] ダイアログ ボックスを使用して、ローカル コンピューターまたはリモート マシン上の Linux .NET Core Docker コンテナーで実行されているプロセスに Visual Studio デバッガーをアタッチできます。
重要
この機能を使うには、ソース コードへのローカル アクセス権を持っている必要があります。
Linux Docker コンテナー内の実行中のプロセスにアタッチするには:
- Visual Studio で、[デバッグ] > [プロセスにアタッチ] (CTRL + ALT + P キー) を選択して、[プロセスにアタッチ] ダイアログ ボックスを開きます。
[接続の種類] を [Docker (Linux コンテナー)] に設定します。
[Docker コンテナーの選択] ダイアログボックスを使用して [検索] を選択し、 [接続先] を設定します。
Docker コンテナー プロセスは、ローカルでもリモートでもデバッグできます。
Docker コンテナー プロセスをローカルでデバッグするには:
- [Docker CLI ホスト] を [ローカル コンピューター] に設定します。
- アタッチする実行中のコンテナーをリストから選択し、 [OK] をクリックします。
B. Docker コンテナー プロセスをリモートでデバッグするには:
Note
Docker コンテナーで実行中のプロセスにリモート接続するには、2 つのオプションがあります。 SSH を使用するという 1 つ目のオプションは、ローカル コンピューターに Docker ツールがインストールされていない場合に最適です。 ローカルに Docker ツールをインストールしていて、リモートの要求を受け入れるように構成されている Docker デーモンがある場合は、2 つ目のオプションである Docker デーモンの使用を試してください。
SSH を使用してリモート マシンに接続するには:
- [追加] を選択してリモート システムに接続します。
- SSH またはデーモンに正常に接続した後にアタッチする実行中のコンテナーを選択し、 [OK] をクリックします。
- [追加] を選択してリモート システムに接続します。
"Docker デーモンを介してプロセスを実行しているリモート コンテナーにターゲットを設定するには"
- [Docker ホスト (オプション)] でデーモンのアドレス (つまり、TCP 経由、IP 経由など) を指定し、更新リンクをクリックします。
- デーモンに正常に接続した後にアタッチする実行中のコンテナーを選択し、 [OK] をクリックします。
Visual Studio で [使用可能なプロセス] リストから対応するコンテナー プロセスを選択し、 [アタッチ] を選択して C# のデバッグを開始します。
Windows Docker コンテナー上で実行されているプロセスにアタッチする
[プロセスにアタッチ] ダイアログ ボックスを使用して、ローカル コンピューター上の Windows Docker コンテナーで実行されているプロセスに Visual Studio デバッガーをアタッチできます。
重要
この機能を .NET Core プロセスで使用するには、.NET Core Cross-Platform Development ワークロードをインストールする必要があります。また、ソース コードへのローカル アクセス権を持っている必要があります。
Windows Docker コンテナーで実行中のプロセスにアタッチするには:
Visual Studio で、[デバッグ] > [プロセスにアタッチ] (または CTRL+ALT+P キー) を選択して、[プロセスにアタッチ] ダイアログ ボックスを開きます。
[接続の種類] を [Docker (Windows コンテナー)] に設定します。
[Docker コンテナーの選択] ダイアログボックスを使用して [検索] を選択し、 [接続先] を設定します。
重要
ターゲット プロセスは、それが実行されている Docker Windows コンテナーと同じプロセッサ アーキテクチャを持つ必要があります。
現在、SSH 経由でターゲットをリモート コンテナーに設定することはできません。Docker デーモンを使用して実行する必要があります。
"Docker デーモンを介してプロセスを実行しているリモート コンテナーにターゲットを設定するには"
[Docker ホスト (オプション)] でデーモンのアドレス (つまり、TCP 経由、IP 経由など) を指定し、更新リンクをクリックします。
デーモンに正常に接続した後にアタッチする実行中のコンテナーを選択し、[OK] を選択します。
[使用可能なプロセス] リストから対応するコンテナー プロセスを選択し、 [アタッチ] を選択して C# のデバッグを開始します。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示