如何在macbook pro中运行docker时启用虚拟化function

我想运行我的MacBook Pro中的docker,但一个错误来到我的眼睛。 在这里输入图像说明

首先,我认为我的CPU没有虚拟化function,但是当我运行“sysctl -a | grep machdep.cpu.features”时,我发现我错了 在这里输入图像说明

我的CPU有VMX.So,有人可以告诉我如何启用我的电脑虚拟化function来运行docker。 更重要的是,我的笔记本电脑是mackbook7.1(13英寸,2010年中)预计你的答案。

官方文档在这里: 安装之前需要知道的东西 。

这个线程提到 :

“入门”文档介绍了以下先决条件:

  • Mac必须是2010年或更新的型号,英特尔硬件支持内存pipe理单元(MMU)虚拟化; 即扩展页表(EPT)

我已经对MMU和EPT部分进行了一些研究。 从https://en.wikipedia.org/wiki/X86_virtualization31我发现EPT是VT-x的一部分。 MMU是VT-d的一部分。
总之,这意味着CPU应该同时支持VT-x和VT-d。

由于要求描述“Mac必须是2010年或更新的模型…”我做了我的安全的假设。 无论哪种方式,我能够在我的iMac中查找有关CPU的更多信息。 使用sysctl命令为您提供有关CPU型号的信息,在我的情况下是Intel Core i5-760处理器。

$ sysctl -n machdep.cpu.brand_string Intel(R) Core(TM) i5 CPU 760 @ 2.80GHz 

英特尔方舟网站上可以使用此型号信息来查找处理器的具体细节。 例如: http : //ark.intel.com/products/48496/Intel-Core-i5-760-Processor-8M-Cache-2_80-GHz199 。 如果您有另一个CPU,请访问ark.intel.com并使用search框input您的模型。

在详细信息页面,我注意到在“高级技术”部分,我的CPU不支持VT-x,但不支持VT-d。

https://cdn-enterprise.discourse.org/docker/uploads/default/original/2X/e/e42e0a73c3092d05490e3cbbf975b41ecced3979.png

所以这将解释为什么Docker for Mac不能在我的iMac上运行。

注意:如果支持EPT,VT-d和VT-x,请检查您的BIOS以启用它们。

XHyve需要Hypervisor框架:

在OS X上,知道您的CPU是否符合所有Hypervisor.framework要求的方法是通过检查sysctl kern.hv_support键的值。

 $ sysctl kern.hv_support kern.hv_support: 1 
  • 如果它是1,那么你的CPU是支持的。
  • 如果是0,则表示Hypervisor.framework不能用于CPU,出于某种原因。