Tengo un Macbook Pro 2010
Tengo un problema al ejecutar Docker, dice
"Error fatal.
Se ha detectado una CPU incompatible Docker requiere un procesador con capacidades de virtualización. "
El procesador es el Core 2 Duo P8600 a 2,4 GHz.
https://ark.intel.com/products/35568/Intel-Core2-Duo-Processor-P8600-3M-Cache-2_40-GHz-1066-MHz-FSB?q=p8600 Dice que es compatible con VT-x
Aunque soporta VT-x, supongo que quizás no soporta algunas capacidades de virtualización posteriores porque esta CPU posterior, el i5 760, se lanzó en el Q3'10 (no en mi portátil), https://ark.intel.com/products/48496/Intel-Core-i5-760-Processor-8M-Cache-2_80-GHz tiene una página más reciente en la que se enumeran algunas otras cosas relacionadas con la virtualización Por ejemplo, el i5 menciona la "tecnología de virtualización Intel® para E/S dirigida (VT-d)": No " y "Intel® VT-x con tablas de páginas extendidas (EPT): sí ". Para mi procesador (el core2duo P8600), la página es un poco más antigua en el diseño, ya que la CPU fue lanzado Q3'08 mientras que dice que tengo VT-x no dice sí o no en cuanto a si tengo EPT o VT-d .
Aunque quizás VT-d sea irrelevante.
Me doy cuenta https://developer.apple.com/documentation/hypervisor menciona
"Por lo general, las máquinas con un conjunto de características Intel VT-x que incluye tablas de páginas extendidas (EPT) y el modo sin restricciones son compatibles. Puede determinar la disponibilidad de las API del hipervisor en una máquina concreta en tiempo de ejecución con el comando sysctl(8), pasando kern.hv_support como argumento".
He leído que aquí hay dos cuestiones que pueden estar relacionadas o no.
-
Es posible que la CPU no soporte la virtualización, y he leído aquí https://forums.docker.com/t/fatal-error-incompatible-cpu-detected/9162/6 que la forma de comprobarlo es ejecutar el comando
$ sysctl kern.hv_support<ENTER>
y si el resultado ese.g.
kern.hv_support: 1then it's fine, and if the result is
kern.hv_support: 0` entonces no está bien. -
Es posible tener una CPU que soporte virtualización pero que haya algo en un MAC que sea como una BIOS o como una UEFI.. que comúnmente desactive la virtualización. Leí en algún sitio(no recuerdo donde, y puede que esté equivocado), que todos los Macbook Pro 2010 tienen una CPU que soporta la virtaualización y es puramente este tema el que hay que habilitar.
Encontré una solución mencionada aquí
https://github.com/dreamcat4/efi-enable-vtx
Un método que dice es temporal que es entrar en el modo de sueño y luego despertar de ella. Para mí eso no funciona.
El otro método que enumera, para "Establecer el bit de registro EFI VT-X"
Lo he intentado pero me encuentro con un problema. Tiene una lista de 33 pasos Para resumir hasta donde llegué.
Descargue la imagen de disco rEFIt, móntela, verá una carpeta efi, cópiela en root, copie la carpeta vmx en el repositorio git dreamcat5/efi-enable-vtx en /efi, ejecute cd /efi/refit
ejecute ./enable.sh
Eso ejecuta un comando sudo. En mi caso no me pidió la contraseña quizás porque ya había ejecutado un comando con sudo. Lo reinicié manteniendo ALT mientras se iniciaba. Llegué al paso 12 que es "Seleccionar el dispositivo de arranque rEFIt para entrar en el menú rEFIt". Pero entonces no me aparece el menú de rEFit. Así que no puedo continuar con los pasos como "En el menú rEFIt, seleccione Console".
¿Necesito actualizar mi CPU? Y si es así, ¿dónde puedo ver una lista de Core 2 Duos que cumplan los requisitos de virtualización? (Ya que claramente mi CPU soporta VT-x), pero tal vez no cumpla con los requisitos.
Tengo entendido que otra opción es instalar una versión anterior de Docker que utilice la caja de herramientas de Docker. No estoy seguro de hasta qué punto eso es una desventaja, pero también es algo que estoy considerando. Pero me gustaría ver si puedo usar la última versión de Docker.
Añadido:
Pulsar el botón de diagnóstico y retroalimentación
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
Se ha añadido más
Veo que hay un enlace github.com/docker/for-mac/issues que se menciona en esa pantalla de docker después de hacer clic en diagnose&feedback, y luego en diagnosticar o diagnosticar y subir. He preguntado allí y actualizaré.
0 votos
¿Hiciste clic en el enlace mencionado en el mensaje de error y descargaste/ejecutaste los diagnósticos según las instrucciones? ¿Cuáles fueron los resultados?
0 votos
@Allan Hice clic en el botón para diagnosticar, y también agregó que acaba de encontrar un enlace github.com/docker/for-mac así que he preguntado allí, y actualizaré aquí.
1 votos
El portátil no lo soporta github.com/docker/for-mac/issues/2591 . Algunos en 2010 puede que lo tengan, pero no todos y el mío es uno que no lo tiene. Es la CPU la que carece de la virtualización de apple que necesita docker. Una versión anterior de docker funcionaría pero usa máquina virtual y es realmente inferior. La CPU no puede ser reemplazada individualmente, sino que está soldada a otra pieza y aunque puede ser que esa pieza pueda ser reemplazada, es una pieza bastante cara y no es mucho más, o un precio similar, conseguir un nuevo portátil que reemplazar esa pieza.