J'ai un Macbook Pro 2010
J'ai un problème avec l'exécution de Docker.
"Erreur fatale.
CPU incompatible détectée Docker nécessite un processeur avec des capacités de virtualisation. "
Le processeur est un Core 2 Duo P8600 à 2,4 GHz.
https://ark.intel.com/products/35568/Intel-Core2-Duo-Processor-P8600-3M-Cache-2_40-GHz-1066-MHz-FSB?q=p8600 Il est indiqué qu'il prend en charge VT-x
Bien qu'il supporte VT-x, je suppose qu'il ne supporte pas certaines capacités de virtualisation ultérieures car ce dernier processeur, le i5 760, a été lancé au troisième trimestre 2010 (pas dans mon ordinateur portable), https://ark.intel.com/products/48496/Intel-Core-i5-760-Processor-8M-Cache-2_80-GHz a une page plus récente qui contient d'autres éléments liés à la virtualisation. Par exemple, l'i5 mentionne "Intel® Virtualization Technology for Directed I/O (VT-d)" : Non "et "Intel® VT-x avec les tables de pages étendues (EPT) : oui ". Pour mon processeur (le core2duo P8600), la page est un peu plus ancienne, car le processeur a été lancé au troisième trimestre 2008. Elle indique que j'ai VT-x, mais ne précise pas si j'ai EPT ou VT-d .
Mais peut-être que le VT-d n'est pas pertinent.
Je remarque https://developer.apple.com/documentation/hypervisor mentions
"En général, les machines dotées d'un ensemble de fonctionnalités Intel VT-x comprenant les tables de pages étendues (EPT) et le mode non restreint sont prises en charge. Vous pouvez déterminer la disponibilité des API de l'hyperviseur sur une machine particulière au moment de l'exécution avec la commande sysctl(8), en passant kern.hv_support comme argument."
J'ai lu qu'il y a deux problèmes ici, qui peuvent ou non être liés.
-
Il se peut en effet que le processeur ne prenne pas en charge la virtualisation, et j'ai lu ce qui suit https://forums.docker.com/t/fatal-error-incompatible-cpu-detected/9162/6 que la façon de vérifier est de lancer la commande
$ sysctl kern.hv_support<ENTER>
et si le résultat este.g.
kern.hv_support : 1then it's fine, and if the result is
kern.hv_support : 0` alors ce n'est pas bon. -
Il est possible d'avoir un CPU qui supporte la virtualisation mais qu'il y a quelque chose dans un MAC qui est comme un BIOS ou comme un UEFI qui désactive communément la virtualisation. J'ai lu quelque part (je ne me souviens pas où, et c'est peut-être faux), que tous les Macbook Pro 2010 ont un CPU qui supporte la virtualisation et que c'est uniquement pour cette raison qu'il faut l'activer.
J'ai trouvé une solution mentionnée ici
https://github.com/dreamcat4/efi-enable-vtx
Il existe une méthode temporaire qui consiste à passer en mode veille puis à se réveiller. Pour moi, cela ne fonctionne pas.
L'autre méthode mentionnée consiste à "Régler le bit du registre VT-X d'EFI"
J'ai essayé mais je rencontre un problème. Il y a une liste de 33 étapes Pour résumer ce que j'ai pu faire.
Téléchargez l'image disque rEFIt, montez-la, vous verrez un dossier efi, copiez-le dans Root, copiez le dossier vmx dans le dépôt git dreamcat5/efi-enable-vtx dans /efi, exécutez cd /efi/refit
courir ./enable.sh
Cette commande exécute une commande sudo. Dans mon cas, il ne m'a pas demandé de mot de passe, peut-être parce que j'avais déjà lancé une commande avec sudo. Je l'ai redémarré en maintenant la touche ALT enfoncée. J'ai atteint l'étape 12 qui est "Select rEFIt boot device to enter rEFIt menu". Mais je n'obtiens pas le menu rEFIt. Je ne peux donc pas continuer avec des étapes comme "Dans le menu rEFIt, sélectionner Console".
Dois-je mettre à niveau mon unité centrale ? Et si oui, où puis-je trouver une liste de Core 2 Duos qui répondent aux exigences de virtualisation ? (Puisqu'il est clair que mon processeur supporte VT-x), mais peut-être qu'il ne répond pas aux exigences.
Je comprends qu'une autre option est d'installer une version antérieure de Docker qui utilise la boîte à outils Docker. Je ne sais pas dans quelle mesure c'est un inconvénient, mais c'est aussi quelque chose que j'envisage. Mais j'aimerais voir si je peux utiliser la dernière version de Docker.
ajouté
Cliquer sur le bouton de diagnostic et de retour d'information
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
Ajout supplémentaire
Je vois qu'il y a un lien github.com/docker/for-mac/issues mentionné dans cet écran de docker après avoir cliqué sur diagnose&feedback, puis sur diagnose ou diagnose and upload. J'ai demandé ce lien et je le mettrai à jour.