我有一个Macbook Pro 2010
它说,我在运行Docker时遇到了问题
“致命错误。
检测到不兼容的CPU
Docker需要具有虚拟化功能的处理器。 “
处理器中有Core 2 Duo P8600 2.4GHz
虽然它支持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。
我已经读过这里有两个问题,可能有也可能没有联系。
CPU可能确实不支持虚拟化,我在这里阅读 https://forums.docker.com/t/fatal-error-incompatible-cpu-detected/9162/6 检查的方法是运行命令
$ sysctl kern.hv_support<ENTER>
如果结果是e.g.
kern.hv_support:1then it's fine, and if the result is
kern.hv_support:0`然后就不行了。可以有一个支持虚拟化的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链接。我问过那里会更新。