Docker et VMWare Workstation sur la même machine Windows

La tâche était simple, installez Docker sur mon ordinateur portable Windows fonctionnel, qui possède déjà un zoo. J'ai installé Docker Desktop et créé des conteneurs, tout va bien, mais j'ai rapidement découvert que VMWare Workstation arrêtait de faire tourner les machines virtuelles avec une erreur :

VMware Workstation and Device/Credential Guard are not compatible. VMware Workstation can be run after disabling Device/Credential Guard.

Les travaux sont arrêtés, il est urgent de réparer

Docker et VMWare Workstation sur la même machine Windows

En cherchant sur Google, il a été découvert que cette erreur se produisait en raison de l'incompatibilité de VMWare Workstation et Hyper-V sur la même machine. Le problème est connu et il existe une solution VMWare officielle comme celle-ci réparer, avec un lien vers la base de connaissances Microsoft Gérer Windows Defender Credential Guard. La solution consiste à désactiver Defender Credential Guard (l'élément 4 de la section Désactiver Windows Defender Credential Guard m'a aidé):

mountvol X: /s
copy %WINDIR%System32SecConfig.efi X:EFIMicrosoftBootSecConfig.efi /Y
bcdedit /create {0cb3b571-2f2e-4343-a879-d86a476d7215} /d "DebugTool" /application osloader
bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} path "EFIMicrosoftBootSecConfig.efi"
bcdedit /set {bootmgr} bootsequence {0cb3b571-2f2e-4343-a879-d86a476d7215}
bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} loadoptions DISABLE-LSA-ISO
bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} device partition=X:
mountvol X: /d

Après le redémarrage, Windows vous demandera si vous voulez vraiment désactiver Defender Credential Guard. Oui! De cette façon, VMWare Workstation reviendra à un fonctionnement normal et nous nous retrouverons au même endroit qu'avant l'installation de docker.

Je n'ai pas trouvé de solution pour concilier Hyper-V et VMWare Workstation, j'espère qu'ils deviendront amis dans les nouvelles versions.

Autrement

Je suis depuis longtemps accro à VMWare Workstation à diverses fins, j'ai essayé de descendre sur Hyper-V et VirtualBox, mais la fonctionnalité ne satisfaisait pas mes tâches, et je suis donc assis à ce jour. Il s'est avéré qu'il existe une solution pour se faire des amis VMWare, Docker et VSCode dans un environnement de travail.

Machine Docker - vous permet d'exécuter Docker Engine sur un hôte virtuel et de vous y connecter à distance et localement. Et il existe un pilote de compatibilité VMWare Workstation pour cela, lien vers github

Je ne vais surtout pas redire les instructions de montage, seulement la liste des ingrédients :

  1. Boîte à outils Docker (Machine Docker inclus)
  2. Pilote de poste de travail VMware Docker Machine
  3. Bureau Docker

Oui, Docker Desktop, malheureusement, sera également nécessaire. Si vous l'avez démoli, réinstallez-le, mais cette fois en supprimant la case à cocher pour apporter des modifications au système d'exploitation, afin de ne pas casser à nouveau VMWare Workstation.

Je tiens à noter tout de suite que tout fonctionne bien à partir d'un simple utilisateur, les programmes d'installation demanderont une escalade des droits lorsqu'ils en auront besoin, mais toutes les commandes sur la ligne de commande et les scripts sont exécutés à partir de l'utilisateur actuel.

En conséquence, l'équipe :

$ docker-machine create --driver=vmwareworkstation dev

à partir de Boot2Docker, un dev virtualka sera créé à l'intérieur duquel sera Docker.

Cette machine virtuelle peut être attachée à l'interface graphique de VMWare Workstation en ouvrant le fichier vmx correspondant. Mais ce n'est pas nécessaire, car VSCode devra maintenant exécuter un script PowerShell (pour une raison quelconque, mes docker-machine et docker-machine-driver-vmwareworkstation se sont retrouvés dans le dossier bin):

cd ~/bin
./docker-machine env dev | Invoke-Expression
code

VSCode s'ouvrira pour fonctionner avec du code sur la machine locale et docker dans la machine virtuelle. brancher Docker pour Visual Studio Code vous permet de gérer facilement les conteneurs dans une machine virtuelle sans accéder à la console.

Des difficultés:

Lors du processus de création de docker-machine, le processus s'est arrêté pour moi :

Waiting for SSH to be available...

Docker et VMWare Workstation sur la même machine Windows

Et au bout d'un moment, cela s'est terminé par un excès de tentatives d'établissement d'une connexion avec la machine virtuelle.

Tout dépend de la politique de certificat. Lors de la création d'une machine virtuelle, vous aurez un répertoire ~.dockermachinemachinesdev dans ce répertoire il y aura des fichiers de certificat pour se connecter via SSH : id_rsa, id_rsa.pub. OpenSSH peut refuser de les utiliser car il pense qu'ils ont des problèmes d'autorisation. Seul docker-machine ne vous dira rien à ce sujet, mais se reconnectera simplement jusqu'à ce qu'il s'ennuie.

solution: Dès que la création d'une nouvelle machine virtuelle commence, nous allons dans le répertoire ~ .dockermachinemachinesdev et modifions les droits sur les fichiers spécifiés, un par un.

Le fichier doit appartenir à l'utilisateur actuel, seuls l'utilisateur actuel et SYSTEM ont un accès complet, tous les autres utilisateurs, y compris le groupe des administrateurs et les administrateurs eux-mêmes, doivent être supprimés.

Il peut également y avoir des problèmes lors de la conversion des chemins absolus de Windows au format Posix et de la liaison des volumes contenant des liens symboliques. Mais c'est une autre histoire.

Source: habr.com

Ajouter un commentaire