Как устранить ошибки докера в windows "Failed to deploy distro docker-desktop to"?

После запуска docker desktop потребовалось обновить WSL2 по ссылке. Я обновил его, всё стало работать нормально. Я нажал на знак докера в трее, выбрал пункт "Learn", после чего появилась ошибка. Я перезагрузил компьютер, но ошибка стала появляться при каждой попытке запустить docker desktop

Конец лог-файла

 stdout: :;NG8B5  DC=:F8N  W i n d o w s   4;O  ?;0BD>@<K  28@BC0;L=KE  <0H8=  8  C1548B5AL  2  B><,   GB>  2  B I O S   2:;NG5=0  28@BC0;870F8O. 
 
 >?>;=8B5;L=K5  A2545=8O  A<.   =0  AB@0=8F5  h t t p s : / / a k a . m s / w s l 2 - i n s t a l l 
 
 
 
 stderr: 
   в Docker.Core.WslShortLivedCommandResult.LogAndThrowIfUnexpectedExitCode(String prefix, ILogger log, Int32 expectedExitCode) в C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.Core\WslCommand.cs:строка 119
   в Docker.Engines.WSL2.WSL2Provisioning.<DeployDistroAsync>d__17.MoveNext() в C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.Desktop\Engines\WSL2\WSL2Provisioning.cs:строка 169
--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---
   в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   в Docker.Engines.WSL2.WSL2Provisioning.<ProvisionAsync>d__8.MoveNext() в C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.Desktop\Engines\WSL2\WSL2Provisioning.cs:строка 78
--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---
   в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   в Docker.Engines.WSL2.LinuxWSL2Engine.<DoStartAsync>d__24.MoveNext() в C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.Desktop\Engines\WSL2\LinuxWSL2Engine.cs:строка 94
--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---
   в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   в Docker.ApiServices.StateMachines.TaskExtensions.<WrapAsyncInCancellationException>d__0.MoveNext() в C:\workspaces\stable-2.3.x\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\stable-2.3.x\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\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\StartTransition.cs:строка 92
--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---
   в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   в Docker.ApiServices.StateMachines.EngineStateMachine.<StartAsync>d__14.MoveNext() в C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\EngineStateMachine.cs:строка 72
--- Конец трассировка стека из предыдущего расположения, где возникло исключение ---
   в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   в Docker.Engines.Engines.<StartAsync>d__24.MoveNext() в C:\workspaces\stable-2.3.x\src\github.com\docker\pinata\win\src\Docker.Desktop\Engines\Engines.cs:строка 109)
[21:21:53.880][Diagnostics       ][Info   ] Uploading diagnostics 57797EA8-0B27-40F8-AE92-A32C3ED3C3A4/20200826181057
[21:21:55.989][Diagnostics       ][Info   ] Uploaded succesfully diagnostics 57797EA8-0B27-40F8-AE92-A32C3ED3C3A4/20200826181057
[21:22:43.523][ErrorReportWindow ][Info   ] Open logs

Также при запуске в консоли команды docker ps появляется ошибка

System.InvalidOperationException: Failed to deploy distro docker-desktop to C:\Users\lari\AppData\Local\Docker\wsl\distro: exit code: -1 stdout: :;NG8B5


Ответы (4 шт):

Автор решения: Serg Bocharov

Это открытый тикет на GitHub'е Doker'a. Однозначного решения пока нет. Есть несколько вариантов - остановить Hyper-V, закрыть процессы слушающие порт 53, остановить процесс dockerd.exe

→ Ссылка
Автор решения: Denis Elkhov
stdout: :;NG8B5  DC=:F8N  W i n d o w s   4;O  ?;0BD>@<K  28@BC0;L=KE  <0H8=  8  C1548B5AL  2  B><,   GB>  2  B I O S   2:;NG5=0  28@BC0;870F8O.

Это не имеет отношения к открытым тикетам на GitHub, портам или HyperV. Просто не включена виртуализация на машине где запускается docker. Чтобы увидеть не локализированную ошибку надо запустить докер в системе под английской локализацией.

stdout: Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS.
→ Ссылка
Автор решения: Potato

Мне помогло удаление файла %USERPROFILE%/.wslconfig. Пробовал всячески модифицировать параметры в файле, но на рабочей машине докер ни в какую не взлетал с этим файлом. Не удалось выяснить почему

→ Ссылка
Автор решения: Andrey Zolotarev

Заменил содержимое .wslconfig на это:

# Settings apply across all Linux distros running on WSL 2
[wsl2]

# Limits VM memory to use no more than 4 GB, this can be set as whole numbers using GB or MB
memory=2GB 

# Sets the VM to use two virtual processors
processors=2

# Sets amount of swap storage space to 8GB, default is 25% of available RAM
swap=2GB

# Disable page reporting so WSL retains all allocated memory claimed from Windows and releases none back when free
pageReporting=false

# Turn off default connection to bind WSL 2 localhost to Windows localhost
localhostforwarding=true

# Disables nested virtualization
nestedVirtualization=false

# Turns on output console showing contents of dmesg when opening a WSL 2 distro for debugging
debugConsole=true
→ Ссылка