次の方法で共有


Docker を使用したVisual Studio開発のトラブルシューティング

適用対象: Visual Studio

Visual Studio Container Tools を使用すると、アプリケーションのビルドまたはデバッグ中に問題が発生する可能性があります。 この記事では、これらの問題の一般的なトラブルシューティング手順について説明します。

ボリューム共有が有効になっていません。 Windows設定に対して Docker CE でボリューム共有を有効にする (Linux コンテナーのみ)

Docker でHyper-Vを使用している場合にのみ、ファイル共有を管理する必要があります。 WSL 2 を使用している場合は、このセクションの手順に従う必要がなく、ファイル共有オプションは表示されません。 これを解決するには、次の手順に従います。

  1. 通知領域で Docker for Windows を右クリックし、Settings を選択します。

  2. [リソース][ファイル共有] を選択し、アクセスする必要があるフォルダーを共有します。 システム ドライブ全体を共有することは可能ですが、お勧めできません。

    共有ドライブのスクリーンショット。

ヒント

Visual Studioは、共有ドライブが構成されていない場合に通知します。

Windows コンテナーのパスに関する問題

Windows コンテナーで Linux に固有のファイル パスを使用すると、さまざまなファイル入力または出力 (I/O) エラーが発生する可能性があります。 これらのエラーが表示された場合は、環境変数 の値を確認します。 変数が設定されている場合、Visual Studio Linux 用 Windows サブシステム (WSL) パスを使用して、ボリュームを作成するためのWindowsファイルを参照しようとします。 この方法は WSL の Docker に必要ですが、Windows上の Docker Desktop では機能しません。 Windowsコンテナーを使用する場合は、常にこの環境変数の設定を解除します。

デバッグを開始できない

この問題の理由の 1 つは、ユーザー プロファイル フォルダー内の古いデバッグ コンポーネントです。 次のコマンドを実行してこれらのフォルダーを削除し、次のデバッグ セッションで最新のデバッグ コンポーネントがダウンロードされるようにします。

  • del %userprofile%\vsdbg
  • del %userprofile%\onecoremsvsmon

アプリケーションのデバッグ時のネットワークに固有のエラー

ホスト コンピューター上のネットワーク関連コンポーネントを更新するクリーンアップ コンテナー ホスト ネットワークからダウンロードできるスクリプトを実行してみてください。

マウントが拒否されました

docker for macOS を使用すると、フォルダー /usr/local/share/dotnet/sdk/NuGetFallbackFolder を参照する際にエラーが発生することがあります。 Docker の File Sharing タブにフォルダーを追加します。

Docker users グループ

コンテナーを操作するときに、Visual Studioで次のエラーが発生する可能性があります。

Docker Desktop を使用するには、現在のユーザーが 'docker-users' グループに含まれている必要があります。 自分を "docker-users" グループに追加し、Windowsからログアウトします。

Docker コンテナーを操作するためのアクセス許可を持つには、"docker-users" グループのメンバーである必要があります。 Windows 10以降のグループに自分自身を追加するには、次の手順に従います。

  1. スタート メニューから、[コンピューターの管理] を開きます。
  2. ローカルユーザーとグループを展開し、グループを選択します。
  3. docker-users グループを見つけて右クリックし、グループに追加を選択します。
  4. ユーザーアカウントを追加、または複数のアカウントを追加します。
  5. いったんサインアウトしてからもう一度サインインして、変更した内容を有効にします。

また、管理者の コマンド プロンプトでコマンドを使用して、ユーザーを特定のグループに追加することもできます。

net localgroup docker-users DOMAIN\username /add

PowerShell では、Add-LocalGroupMember 関数を使用します。

ディスク領域不足

既定では、Docker は %ProgramData%/Docker/ フォルダーにイメージを格納します。通常はシステム ドライブの C:\ProgramData\Docker\にあります。 システム ドライブの大切な領域をイメージで占有してしまわないよう、イメージ フォルダーの場所を変更できます。 場所を変更するには:

  1. タスク バーの Docker アイコンを右クリックし、[ 設定] を選択します。

  2. [Docker エンジン] を選択します。

  3. 編集ウィンドウで プロパティ設定を追加し、Docker イメージに任意の場所を指定します。

       "graph": "D:\\mypath\\images"
    

    Docker ファイル共有のスクリーンショット。

  4. アプリケーションと再起動を選択します。 以上の手順で %ProgramData%\docker\config\daemon.json にある設定ファイルが変更されます。 以前にビルドされたイメージは移動されません。

コンテナーの種類の不一致

Docker サポートをプロジェクトに追加する場合は、Windowsまたは Linux コンテナーを選択します。 プロジェクト ターゲットと同じコンテナーの種類を実行するように Docker Server ホストが構成されていない場合は、次のようなエラーが表示されます。

Docker ホストとプロジェクトの不一致のスクリーンショット。

この問題を解決するには、システム トレイの Docker for Windows アイコンを右クリックし、Switch to Windows コンテナーを選択します。 または Linux コンテナーへの切り替え...

ContainerToolsPackage または DockerComposePackage が正しく読み込まれませんでした

マネージド拡張フレームワーク (MEF) キャッシュが破損すると、この問題が発生する可能性があります。 これを修正するには、Visual Studio インスタンスの ComponentModelCache フォルダーを削除します。

  1. Visual Studioのすべてのインスタンスを閉じます。

  2. 次の PowerShell コマンドを実行して 、ComponentModelCache フォルダーを削除します。

    Get-ChildItem -Path "$(Join-Path $Env:LOCALAPPDATA "Microsoft\VisualStudio")" -Recurse -Include "ComponentModelCache" | Remove-Folder
    

フォルダーは手動で削除することもできます。

  1. ファイル エクスプローラーで %localappdata%\Microsoft\VisualStudio を開きます。
  2. Visual Studio のバージョン (たとえば、18.0_b653d53fを開きます。
  3. ComponentModelCache フォルダーを削除します。

その他の問題

発生したその他の問題については、 Microsoft/DockerTools を参照してください。

関連情報

  • Container Tools のエラー メッセージ