問題の説明
解決
Windows 機能で Hyper-v を有効にする
選択肢がない場合はHyper-v
、新規テキストを作成し、以下の内容を貼り付け、サフィックス.cmd
としてから実行してください。
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
Linux
また、適切なサブシステムを必ず有効にしてからWindows
、
コンピュータを再起動してDocker
通常どおり実行する必要があります。
上記の操作を完了しても、「WSL 2 のインストールは不完全です」というエラー メッセージが表示されます。
まだ問題がある場合WSL 2 installation is incomplete.
。残っている理由は 1 つだけです。
私たちが使用している wsl2 のバージョンはかなり古いため、手動で更新する必要があります。プロンプトに従って Microsoft の公式 Web サイトから最新バージョンの wsl2 をダウンロードし、通常どおり開くことができます。
アップデートをダウンロードしてインストールするためのリンクは次のとおりです。
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
最新バージョンの wsl2 をインストールします。
再起動。走る。
この時点では、ほとんどは正常に実行できます。まだの場合は、究極のトリックがあります。
この時点でエラーが報告された場合、System.InvalidOperationException: Failed to set version to docker-desktop: exit code: -1
エラーは次のとおりです。
System.InvalidOperationException:
Failed to set version to docker-desktop: exit code: -1
stdout: �S��v�[a�{
|�W
N/ec\Ջ�v�d\O0
stderr:
在 Docker.ApiServices.WSL2.WslShortLivedCommandResult.LogAndThrowIfUnexpectedExitCode(String prefix, ILogger log, Int32 expectedExitCode) 位置 C:\workspaces\PR-15387\src\github.com\docker\pinata\win\src\Docker.ApiServices\WSL2\WslCommand.cs:行号 146
在 Docker.Engines.WSL2.WSL2Provisioning.<ProvisionAsync>d__8.MoveNext() 位置 C:\workspaces\PR-15387\src\github.com\docker\pinata\win\src\Docker.Desktop\Engines\WSL2\WSL2Provisioning.cs:行号 82
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
在 Docker.Engines.WSL2.LinuxWSL2Engine.<DoStartAsync>d__26.MoveNext() 位置 C:\workspaces\PR-15387\src\github.com\docker\pinata\win\src\Docker.Desktop\Engines\WSL2\LinuxWSL2Engine.cs:行号 104
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
在 Docker.ApiServices.StateMachines.TaskExtensions.<WrapAsyncInCancellationException>d__0.MoveNext() 位置 C:\workspaces\PR-15387\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\TaskExtensions.cs:行号 29
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
在 Docker.ApiServices.StateMachines.StartTransition.<DoRunAsync>d__5.MoveNext() 位置 C:\workspaces\PR-15387\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\StartTransition.cs:行号 67
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
在 Docker.ApiServices.StateMachines.StartTransition.<DoRunAsync>d__5.MoveNext() 位置 C:\workspaces\PR-15387\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\StartTransition.cs:行号 92
管理者として次のように入力しますcmd
。
netsh winsock reset
注: このコマンドは慎重に使用する必要があります。元のシステムがdocker
削除されます。これは、リセットに相当しますdocker-desktop
。その中のイメージとコンテナは失われます。再起動すると合計がdocker-desktop
再生成されますdocker-desktop
docker-desktop-data