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

Sum*_* Su 3 docker dockerfile docker-compose docker-machine

我想在我的 macbook pro 中运行 docker。但是我看到一个错误。\n在此输入图像描述

\n\n

首先\xef\xbc\x8c我认为我的CPU没有虚拟化功能。但是当我运行“sysctl -a | grep machdep.cpu.features”时,我发现我错了\n在此输入图像描述

\n\n

我的CPU有VMX。所以,有人可以告诉我如何在我的计算机中启用虚拟化功能来运行docker。\n更重要的是,我的笔记本电脑是mackbook7.1\xef\xbc\x8813英寸\xef\xbc\x8c2010 Middle\xef\xbc\x89\n期待您的答复。

\n

Von*_*onC 6

官方文档在这里:安装之前需要了解的内容

\n\n

线程提到

\n\n
\n

入门文档描述了以下先决条件:

\n\n
\n
    \n
  • Mac 必须是 2010 或更新型号,具有 Intel\xe2\x80\x99s 硬件支持内存管理单元 (MMU) 虚拟化;即扩展页表(EPT)
  • \n
\n
\n\n

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

\n\n

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

\n
\n\n
$ sysctl -n machdep.cpu.brand_string\nIntel(R) Core(TM) i5 CPU         760  @ 2.80GHz\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n

该型号信息可以在英特尔方舟网站上查找处理器的具体细节。例如: http: //ark.intel.com/products/48496/Intel-Core-i5-760-Processor-8M-Cache-2_80-GHz199。如果您有其他 CPU,请访问 ark.intel.com 并使用搜索框输入您的型号。

\n\n

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

\n
\n\n

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

\n\n
\n

这就解释了为什么 Docker for Mac 无法在我的 iMac 上运行。

\n
\n\n

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

\n\n

XHyve 需要 Hypervisor 框架:

\n\n
\n

在 OS X 上,了解您的 CPU 是否符合所有要求的方法Hypervisor.framework是检查该键的值sysctl kern.hv_support

\n
\n\n
$ sysctl kern.hv_support\nkern.hv_support: 1\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n
    \n
  • 如果为 1,则说明您的 CPU 受支持。
  • \n
  • 如果它是 0,则意味着 Hypervisor.framework 由于某种原因无法与您的 CPU 一起使用。
  • \n
\n
\n