簡體   English   中英

無法在 Windows 10 中啟動 Docker - 拋出 Hyper-V 錯誤

[英]Unable to start Docker in Windows 10 - Hyper-V error is thrown

在 Windows 10 中啟動 docker 時出現以下錯誤。誰能指導我正確安裝 docker?

Unable to create: The running command stopped because the preference variable 
"ErrorActionPreference" or common parameter is set to Stop: Hyper-V encountered
an error trying to access an object on computer 'XXXX' because the object was not 
found. The object might have been deleted, or you might not have permission to 
perform the task. Verify that the Virtual Machine Management service on the 
computer is running. If the service is running, try to perform the task again by 
using Run as Administrator.
at New-MobyLinuxVM, <No file>: line 242
at <ScriptBlock>, <No file>: line 362
   at Docker.Backend.HyperV.RunScript(String action, Dictionary`2 parameters)
   at Docker.Backend.ContainerEngine.Linux.Start(Settings settings)
   at Docker.Core.Pipe.NamedPipeServer.<>c__DisplayClass8_0.<Register>b__0(Object[] parameters)
   at Docker.Core.Pipe.NamedPipeServer.RunAction(String action, Object[] parameters)

版本

OS : Windows 10 Enterprise 
Version : 1607 
OS Build : 14393.576
Docker Version : 1.12.3 (Stable)

在管理員模式下從命令提示符運行“MOFCOMP %SYSTEMROOT%\\System32\\WindowsVirtualization.V2.mof” 執行此操作后也無需重新啟動機器,它對我有用。

我也遇到過同樣的問題。 我已經通過刪除所有 MobyLinuxVM 虛擬機解決了這個問題。 以下是它的步驟。

  1. 打開 Hyper-V 管理器
  2. 從虛擬機中選擇所有 MobyLinuxVM。
  3. 右鍵單擊並刪除所有這些虛擬機。
  4. 重新啟動泊塢窗。

這些步驟在我的系統上解決了這個問題。

假設您正在嘗試運行 Windows 容器:

右鍵單擊 Docker 系統托盤圖標,然后選擇“切換到 Windows 容器”。

它最終會讓您重新啟動系統,但不會再嘗試運行錯誤消息中提到的 MobyLinuxVm。

如果它對任何人有幫助,我將使用通過 Parallels 運行 Windows 10 VM 的 Apple 硬件 (MacOS)。 我還確保在我的並行設置 > 處理器和內存 > 高級下,我啟用了 Hypervision 應用程序。

這個問題與Docker的另一個問題非常相似- The computer 'WINDOWS10-ON-SE' could not beresolution

請參閱我在https://stackoverflow.com/a/45099242/279272 上的回答

我也面臨同樣的問題,但它本質上是隨機的,我發現這是由於 docker start 腳本無法訪問網卡。 這種不可訪問性進一步阻止了 docker 的啟動過程。

我發現了一個 hack,它在我的 Windows 機器上運行良好

黑客

在管理模式下使用任何編輯器打開C:\\Program Files\\Docker\\Docker\\resources\\mobylinux.ps1 找到以下代碼(大約第 164 行)

$networkAdapter | Remove-NetIPAddress -Confirm:$false -ea SilentlyContinue

$networkAdapter | Set-NetIPInterface -Dhcp Disabled -ea SilentlyContinue

$networkAdapter | New-NetIPAddress -AddressFamily IPv4 -IPAddress $switchAddress -PrefixLength ($SwitchSubnetMaskSize) -ea Stop | Out-Null

在如下所示的新行中在第 165 行之后添加一個return並保存文件。

$networkAdapter | Remove-NetIPAddress -Confirm:$false -ea SilentlyContinue

$networkAdapter | Set-NetIPInterface -Dhcp Disabled -ea SilentlyContinue

return

$networkAdapter | New-NetIPAddress -AddressFamily IPv4 -IPAddress $switchAddress -PrefixLength ($SwitchSubnetMaskSize) -ea Stop | Out-Null

現在重啟docker,重啟完成后在dos admin模式下執行以下命令手動設置網卡

netsh interface ipv4 set address name="vEthernet (DockerNAT)" static 10.0.75.1 255.255.255.0

每當您進行系統重啟並且 docker 完成啟動過程(由於任何原因)時,您都必須運行此命令。 提示:創建此命令的批處理文件並保存在方便的地方。

注意:任何 docker 更新都會撤銷 ps hack。 所以要注意...

要安裝 docker,需要 BIOS 級別的硬件虛擬化支持。 所以你可以做以下..

- 確保在啟動計算機時在主板設置中的 BIOS 設置中打開硬件虛擬化支持,在(系統安全 => 虛擬化技術 VTX => 啟用它)下,然后保存 BIOS 設置並正常啟動機器。 然后通過在您的 powershell 中以管理員身份運行此命令來啟用 hyper v(如果它未啟用):

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

對我來說,將 Windows 10 專業版更新到 1809 版解決了這個問題

在 Windows 10 上,我通過執行以下步驟解決了該問題:

法語 Windows 版本:

  1. 關閉 Docker 桌面
  2. 轉到“控制應用程序和導航”
  3. 點擊“Exploit protection”下的“Paramètre d'exploit protection”
  4. 轉到選項卡“Paramètres du program”
  5. 搜索“C:\\Windows\\System32\\vmcompute.exe”或“vmcompute.exe”
  6. 單擊更新並取消選中與所有配置相關的所有復選框,然后應用
  7. 再次運行 Docker 桌面

英文視窗版本:

  1. 關閉 Docker 桌面
  2. 轉到“應用程序和瀏覽器控制”
  3. 點擊“漏洞利用保護”下的“漏洞利用保護設置”
  4. 轉到選項卡“程序設置”
  5. 搜索“C:\\Windows\\System32\\vmcompute.exe”或“vmcompute.exe”
  6. 單擊更新並取消選中與所有配置相關的所有復選框,然后應用
  7. 再次運行 Docker 桌面

希望這會幫助別人。

當您啟動 Windows 並啟動 docker 時,只需右鍵單擊右下欄中的 docker 並切換到 Windows 容器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM