docker遇到的最大的坑


問題描述

docker Desktop安裝后,執行docker - v 成功展示版本號,但是切換為Linux內核就報錯.

 

出現以下錯誤:

Unable to stop - 已停止該運行的命令,因為首選項變量“ErrorActionPreference”或通用參數設置為 Stop: 由於以下錯誤無法啟動服務“Hyper-V 主機計算服務 (vmcompute)”: 無法啟動計算機“.”上的服務 vmcompute。

   在 Docker.Core.Pipe.NamedPipeClient.<TrySendAsync>d__5.MoveNext()
--- 引發異常的上一位置中堆棧跟蹤的末尾 ---
   在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   在 Docker.Core.Pipe.NamedPipeClient.Send(String action, Object[] parameters)
   在 Docker.Actions.DoStart(SynchronizationContext syncCtx, Boolean showWelcomeWindow, Boolean executeAfterStartCleanup)
   在 Docker.Actions.<>c__DisplayClass24_0.<Start>b__0()
   在 Docker.ApiServices.TaskQueuing.TaskQueue.<>c__DisplayClass17_0.<.ctor>b__1()

原因是, Windows10默認開啟控制流防護(Control Flow Guard , CFG)

控制流防護(CFG)作為Win 8.1+的新安全保護機制,其實並不知名。 它被用於阻止針對可執行文件間接調用的惡意利用。CFG保護十分高效,同時它是一種編譯器和操作系統相結合的防護手段。 “(CFG)編譯檢測代碼會根據指針地址來進行間接跳轉,這也就使得攻擊者控制系統程序的過程變得更加的困難。”

 

①首先確保開啟了Hyper-V,若沒開啟,步驟:控制面板-》程序-》啟用或關閉windows功能-》開啟Hyper-V-》重啟

 

1, Open "Window Security" 打開“WIndows安全中心 ”

2, Open "App & Browser control" 打開“應用和瀏覽器控制”

3, Click "Exploit protection settings" at the bottom 點擊"Exploit protection settings" (在最下面)

4, Switch to "Program settings" tab 切換到“程序設置”

5, Locate "C:\WINDOWS\System32\vmcompute.exe" in the list and expand it 找到 "C:\WINDOWS\System32\vmcompute.exe"並展開

6, Click "Edit" 點擊“編輯”

7, Scroll down to "Code flow guard (CFG)" and uncheck "Override system settings" 找到"控制流保護(CFG)”並把“替代系統設置”前的勾去掉。

8, win+R 輸入 services.msc 找到hyper-V 虛擬機管理服務和Hyper-V主機計算服務,手動打開或者把啟動方式改為自動。

9,記得重啟電腦,才能生效

 

最后docker is running..........................

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM