每次開機docker-desktop都啟動失敗了

zhuzhijie發表於2022-06-15

引言


啟動報錯提示為:“The attempted operation is not supported for the type of object referenced”,即“參考的物件型別不支援嘗試的操作”。作業系統為中文的使用者提示還可能為亂碼,看也看不懂,這邊也貼出來作為搜尋關鍵詞:�S ��v�[a�{|�W N/e c \Ջ�v�d\O 0 ,這個錯誤發生在版本比較新的docker-desktop中,使用WSL2作為基本引擎。

System.InvalidOperationException:
Failed to set version to docker-desktop: exit code: -1
 stdout: The attempted operation is not supported for the type of object referenced.

 stderr: 
   at Docker.ApiServices.WSL2.WslShortLivedCommandResult.LogAndThrowIfUnexpectedExitCode(String prefix, ILogger log, Int32 expectedExitCode) in C:\workspaces\PR-18120\src\github.com\docker\pinata\win\src\Docker.ApiServices\WSL2\WslCommand.cs:line 160
   at Docker.Engines.WSL2.WSL2Provisioning.<ProvisionAsync>d__8.MoveNext() in C:\workspaces\PR-18120\src\github.com\docker\pinata\win\src\Docker.Engines\WSL2\WSL2Provisioning.cs:line 81

 

正文


查閱資料時發現有很多人遇到,問題的原因解釋為一個LSP DLL在WSL中載入呼叫失敗引起的。解決辦法很簡單,只要防止WSL去載入這個LSP就可以了。

 

附上部分問題參考:

[SOLUTION] "The attempted operation is not supported for the type of object referenced." error after Windows Update #547 - MicrosoftDocs / WSL

win docker【�S ��v�[a�{|�W N/e c \Ջ�v�d\O 0】報錯誤 - User_undefined

WSL2啟動時提示:參考的物件型別不支援嘗試的操作 - fangye945a

 

本人也通過執行netsh winsock reset 重置winsock來臨時解決這個問題,這個治標不治本,電腦重啟後該報錯還是得報錯。

最終簡單方便不易出錯的方法就是下面這個了:

把下面的語句儲存為登錄檔註冊檔案wsl.reg ,儲存後執行把配置插入到登錄檔,成功註冊後重啟docker-desktop就可以了。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\AppId_Catalog\0408F7A3]
"AppFullPath"="C:\\Windows\\System32\\wsl.exe"
"PermittedLspCategories"=dword:80000000

 

相關文章