我无法安装Docker。 Macbook Pro 2010中的CPU是否支持虚拟机管理程序框架?如果是这样,为什么`sysctl kern.hv_support`返回0?


2

我有一个Macbook Pro 2010

它说,我在运行Docker时遇到了问题

“致命错误。
检测到不兼容的CPU Docker需要具有虚拟化功能的处理器。 “

enter image description here

处理器中有Core 2 Duo P8600 2.4GHz

https://ark.intel.com/products/35568/Intel-Core2-Duo-Processor-P8600-3M-Cache-2_40-GHz-1066-MHz-FSB?q=p8600 它说它支持VT-x

虽然它支持VT-x,但我猜它可能不支持一些后来的虚拟化功能,因为后来的CPU i5 760推出了Q3'10(不在我的笔记本电脑中), https://ark.intel.com/products/48496/Intel-Core-i5-760-Processor-8M-Cache-2_80-GHz 有一个更新的页面,其中列出了与虚拟化相关的其他一些内容例如,i5提到了“用于定向I / O的英特尔®虚拟化技术(VT-d): 没有 “和”具有扩展页表(EPT)的英特尔®VT-x: “。对于我的处理器(core2duo P8600),页面的设计有点旧,因为CPU是在Q3'08推出的,而它说我有VT-x它不会说是或否我是否有EPT或VT-d。

我已经读过这里有两个问题,可能有也可能没有联系。

  1. CPU可能确实不支持虚拟化,我在这里阅读 https://forums.docker.com/t/fatal-error-incompatible-cpu-detected/9162/6 检查的方法是运行命令 $ sysctl kern.hv_support<ENTER> 如果结果是 e.g. kern.hv_support:1 then it's fine, and if the result is kern.hv_support:0`然后就不行了。

  2. 可以有一个支持虚拟化的CPU,但MAC中有一些东西就像BIOS或UEFI ......通常会禁用虚拟化。我读到某处(不记得在哪里,也可能是错的),所有Macbook Pro 2010都有一个支持virtaualization的CPU,而且纯粹是这个需要启用它的问题。

我找到了这里提到的解决方案

https://github.com/dreamcat4/efi-enable-vtx

它说的一种方法是临时的,即进入睡眠模式然后唤醒它。对我来说不起作用。

它列出的另一种方法是“设置EFI VT-X寄存器位”

我尝试过,但遇到了问题。它列出了33个步骤..总结一下我得到的。

下载rEFIt磁盘映像,挂载它,你看到一个efi文件夹,将其复制到root,将dreamcat5 / efi-enable-vtx git仓库中的vmx文件夹复制到/ efi,运行 cd /efi/refit./enable.sh 这运行sudo命令。在我的情况下,它没有提示输入密码,因为我已经用sudo运行了一个命令。在启动时按住ALT重新启动它。达到步骤12,即“选择rEFIt启动设备进入rEFIt菜单”。但后来我没有得到rEFit菜单。因此,我无法继续执行“在rEFIt菜单中选择控制台”等步骤。

我需要升级CPU吗?如果是这样,我在哪里可以看到满足虚拟化要求的Core 2 Duos列表? (因为我的CPU显然支持VT-x),但也许它不符合要求。

我知道另一个选择是安装使用docker工具箱的早期版本的Docker。我不确定这在多大程度上是一个劣势,但它也是我正在考虑的事情。但我想知道我是否可以使用最新版本的docker。

添加

单击诊断和反馈按钮

Docker for Mac: version: 17.12.0-ce-mac49 (d1778b704353fa5b79142a2055a2c11c8b48a653)
macOS: version 10.12.6 (build: 16G29)
logs: /tmp/5FE6B0F8-0B3C-4C7A-A5CB-24B1A5AD4D4C/20180210-135141.tar.gz
failure: sysctl -a reports no hypervisor support
[OK]     db.git
[ERROR]  vmnetd
         /var/tmp/com.docker.vmnetd.socket does not exist
         Unexpected error (No such file or directory) connecting to /var/tmp/com.docker.vmnetd.socket
         /private/tmp/vmnetd/com.docker.vmnetd is not running
[OK]     dns
[ERROR]  driver.amd64-linux
         com.docker.driver.amd64-linux is not running
[OK]     virtualization VT-X
[OK]     app
[ERROR]  moby
         /Users/apple/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/console-ring does not exist
[OK]     system
[OK]     moby-syslog
[OK]     kubernetes
[OK]     env
[ERROR]  virtualization kern.hv_support
         sysctl -a reports no hypervisor support
[ERROR]  slirp
         Unexpected error ((Failure
  "Error connecting socket to 9p endpoint unix:/Users/apple/Library/Containers/com.docker.docker/Data/s51: Unix.Unix_error(Unix.ENOENT, \"connect\", \"\")")) connecting to /Users/apple/Library/Containers/com.docker.docker/Data/s51
         com.docker.vpnkit is not running
         slirp check failed with: Unix.Unix_error(Unix.ENOENT, "connect", "")
[ERROR]  osxfs
         com.docker.osxfs is not running
[OK]     moby-console
[OK]     logs
[ERROR]  docker-cli
         cannot find docker
         /var/run/docker.sock does not exist
         Unexpected error (No such file or directory) connecting to /var/run/docker.sock
         /Users/apple/Library/Containers/com.docker.docker/Data/s60 does not exist
         Unexpected error (No such file or directory) connecting to /Users/apple/Library/Containers/com.docker.docker/Data/s60
         docker ps failed
[OK]     menubar
[ERROR]  disk
         No Docker.qcow2 or Docker.raw found: the VM has never been started

进一步补充

我看到在点击诊断和反馈,然后单击诊断或诊断并上传后,在该docker屏幕中提到了一个github.com/docker/for-mac/issues链接。我问过那里会更新。


您是否单击了错误消息中提到的链接并按照说明下载/运行诊断程序?结果是什么?
Allan

@Allan单击按钮进行诊断,还添加了刚刚找到github.com/docker/for-mac链接,所以我在那里问过,并会在这里更新。
barlop

1
笔记本电脑不支持它 github.com/docker/for-mac/issues/2591 。 2010年的一些人可能有,但不是全部,而我的那些人没有。这是CPU缺乏docker需要的苹果虚拟化。较旧版本的docker可以工作但使用虚拟机并且非常低劣。 IIRC从我看到它时,CPU不能简单地单独更换,它可以安装,焊接到另一个部件,虽然它可能是那个部件可以更换,但它是相当昂贵的部分而且不是很多更多或类似的价格,以获得一台新的笔记本电脑,而不是更换该部分。
barlop
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.