【问题标题】:Can I install Docker inside a Mac VirtualBox VM?我可以在 Mac VirtualBox VM 中安装 Docker 吗?
【发布时间】:2019-08-01 03:32:19
【问题描述】:

我有一台 Mac Sierra 10.12 OS 虚拟机,使用 VirtualBox 托管在 Windows 10 Home 上。

我想在这个 Mac 虚拟机中运行 Docker,但是当我尝试时,我收到以下错误消息:

Error

检测到不兼容的 CPU。

很抱歉,您的硬件与 Docker Desktop 不兼容。

Docker 需要具有虚拟化功能和虚拟机管理程序支持的处理器。

要了解有关此问题的更多信息,请参阅:

https://docs.docker.com/docker-for-mac/troubleshoot

我知道我的机器(HP Envy、intel core i5)启用了 Hyper-V。据我所知,这不是硬件问题。我的 i5 处理器支持 Hyper-V,因此支持 SLAT 即 EPT。我很确定这与我的 VM 设置有关,这导致了问题。

我无法改用 Docker Toolbox,因为我需要 Docker Desktop for Mac 专门在我的 VM 中运行一些 Beta 版软件。

如果有人能够帮助我使用我的 Mac VM 运行 Docker,我们将不胜感激。

PS。我的知识非常有限,因为我不是技术人员,所以与菜鸟兼容的指令会很棒! 谢谢!

【问题讨论】:

  • 您能否检查一下您的虚拟机系统设置中的硬件虚拟化>启用VT-X/AMD-V选项是否已启用?
  • 您好,Mostafa,此设置确实已启用。

标签: macos docker virtualbox hypervisor docker-desktop


【解决方案1】:

Docker Desktop for Mac 使用 HyperKit(请参阅https://docs.docker.com/docker-for-mac/install/),而后者又使用需要 CPU EPT 的 xhy.ve(https://en.wikipedia.org/wiki/Second_Level_Address_Translation#EPThttps://github.com/moby/hyperkit)。

人们说 VB 还不支持嵌套虚拟化 - 请参阅 https://forums.virtualbox.org/viewtopic.php?f=7&t=86922

所以我怀疑VB没有提供EPT功能,因此Docker Desktop无法运行。

【讨论】:

  • 我猜在这种情况下可能是硬件限制? Intel added support for nested paging, which they call extended page tables (EPT), with their Core i7 (Nehalem) processors.virtualbox.org/manual/ch10.html
  • 问题不在于 CPU。 Virtual Box 对此类功能不透明。
  • -我的CPU有EPT,所以我满足硬件要求。 -我同意VB不支持嵌套虚拟化(VM中的VM)-但是,VB似乎确实支持EPT(virtualbox.org/manual/ch10.html#nestedpaging)我认为问题是我的主机上的VirtualBox和VM中的Docker都在尝试同时使用EPT?这有意义吗?有没有办法通过改变一些 VB 设置来解决这个问题?
  • @lottieholland 原因是 VB 如何支持这一点——作为消费者或提供者。从您的链接中,我了解到 VB 作为消费者支持 EPT,但我怀疑 - 它不作为提供者。
猜你喜欢
  • 2021-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-12
  • 1970-01-01
  • 2018-11-22
  • 2015-08-17
  • 1970-01-01
相关资源
最近更新 更多