Docker Desktop - Windows 11で予期しないWSLエラー

Docker DesktopユーザーはWSLコマンドを実行できません。被害者の何人かはDocker Desktopをインストールしたばかりですが、何人かはアプリケーションを更新した後にこの問題が発生しました。以下はユーザーが表示する正確なエラーメッセージです。

Docker Desktop - 予期しないWSLエラー

WSLコマンドを実行中に予期しないエラーが発生しました。一般的な
原因としては、アクセス権の問題が考えられます。これは、コンピュータをスリープ解除した後や、
ドメイン/Active Directoryに接続されていない場合に発生します。

WSLをシャットダウン(wsl - shutdown)するか、コンピュータを再起動してみてください。それで
十分でない場合は、WSLを完全に再インストールする必要があります。最後の手段として、
Docker Desktopをアンインストールして再インストールしてみてください。問題が解決しない場合は、
診断情報を収集して問題を提出してください
( …: //docs.docker.com/desktop/troubleshoot/overview/#diagnose-from-the-terminal)。

Windows 11でDocker Desktop - 予期しないWSLエラーを修正する

Docker Desktopで予期しないWSLエラーが発生した場合は、まず、エラーメッセージに示されているように、wsl - shutdownを使用してWSLをシャットダウンします。それでも問題が解決しない場合は、以下に記載されている解決策に従ってください。

  1. WSLをインストールまたは更新する
  2. レガシーコンソールを使用する
  3. Hyper-V、仮想マシン プラットフォーム、Windows Hypervisor プラットフォームが有効になっていることを確認する
  4. Winsockをリセットする
  5. Windows Subsystem Linuxを修復またはリセットする
  6. WSLまたはDocker Desktopをアンインストールして再インストールする

それらについて詳しく説明しましょう。

1] WSLをインストールまたは更新する

WSLコマンドを実行するには、WSLを手動でインストールする必要があります。ほとんどのユーザーはこの状況を認識しており、WSLをインストールしていますが、何らかの理由でアンインストールされている可能性があります。もう一度インストールしても害はありません。同じことを試してみます。同じようにするには、コマンドプロンプトを管理者として開き、以下に記載されているコマンドを実行します。

wsl --install

コマンドを実行してWSLをインストールします。WSLがインストールされたら、問題が解決したかどうかを確認します。WSLがすでにインストールされている場合は、次のコマンドを実行してWSLを更新する必要があります。

wsl --update

更新後、問題が解決したかどうかを確認します。

2] レガシーコンソールを使用する

レガシーコンソールモードは、古いコマンドラインツールのユーザーを支援するための互換性ツールです。現在のコマンドプロンプトコンソールからWSLにアクセスできない場合は、レガシーコンソールに切り替えます。同じようにするには、以下に記載されている手順に従います。

  1. コマンドプロンプトを開きます。
  2. ヘッダーを右クリックして、プロパティを選択します。
  3. レガシーコンソールを使用する(再起動が必要、すべてのコンソールに影響する)にチェックマークを付けて、OKをクリックします。

これで問題が解決します。

3] Hyper-V、仮想マシン プラットフォーム、Windows Hypervisor プラットフォームが有効になっていることを確認する

Hyper-v、仮想マシン プラットフォーム、Windows Hypervisor プラットフォームの機能が有効になっていることを確認する必要があります。これらは、WSLまたは任意の仮想環境を実行するために必要な機能の一部です。同じようにするには、以下に記載されている手順に従います。

  1. コントロールパネルを開きます。
  2. プログラム > プログラムと機能の順に移動します。
  3. Windowsの機能の有効化または無効化をクリックします。
  4. Hyper-v、仮想マシン プラットフォーム、Windows Hypervisor プラットフォームの機能が有効になっていることを確認します。

これで問題が解決することを願っています。

4] Winsockをリセットする

Winsockは、ネットワークソフトウェアとサービス間で通信するWindows Socket APIです。Winsockに問題を引き起こしている不具合がある場合は、それをリセットして問題を解決する必要があります。同じようにするには、コマンドプロンプトを管理者として開き、以下に記載されているコマンドを実行します。

netsh winsock reset

コンピュータを再起動して、問題が解決したかどうかを確認します。

5] Windows Subsystem Linuxを修復またはリセットする

WSLのインストールが破損または誤って構成されている場合も、この問題が発生する可能性があります。まずWSLを修復し、それでも問題が解決しない場合は、リセットします。同じようにするには、以下に記載されている手順に従います。

  • 設定を開きます。
  • アプリ > インストール済みアプリまたはアプリと機能に移動します。
  • 「Windows Subsystem for Linux」を検索します。
    • Windows 11: 3つのドットをクリックして、詳細オプションを選択します。
    • Windows 10: アプリを選択して、詳細オプションをクリックします。
  • 修復をクリックします。

問題が解決しない場合は、リセットをクリックします。これで問題が解決します。

6] WSLまたはDocker Desktopをアンインストールして再インストールする

何も機能しない場合は、最後の手段としてWSLをアンインストールして新しいコピーをインストールします。問題が破損したインストールメディアが原因で発生した場合は、再インストールすることで問題が解決します。問題が解決しない場合は、Docker Desktopでも同じようにします。

以上です。

Docker Desktopで予期しないWSLエラーを修正するにはどうすればよいですか?

Docker DesktopでWSLエラーが発生した場合は、まずシャットダウンしてから再起動します。それでも問題が解決しない場合は、最初の解決策から実行を開始して、順を追って進めていきます。

Docker DesktopにWSLは必要ですか?

はい、WindowsコンピュータでDocker Desktopを実行するにはWSLが必要です。最新バージョンであり、改善されたファイルシステム共有機能を付与するため、WSL 2をインストールすることをお勧めします。