Docker en VMWare Workstation op dieselfde Windows-masjien

Die taak was eenvoudig, sit Docker op my werkende Windows-skootrekenaar, wat reeds 'n dieretuin het. Ek het Docker Desktop geïnstalleer en houers geskep, alles is in orde, maar ek het vinnig ontdek dat VMWare Workstation opgehou het om virtuele masjiene te laat loop met 'n fout:

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

Die werk is gestaak, dit is dringend om te herstel

Docker en VMWare Workstation op dieselfde Windows-masjien

Deur te google, is uitgevind dat hierdie fout voorkom as gevolg van die onverenigbaarheid van VMWare Workstation en Hyper-V op dieselfde masjien. Die probleem is bekend en daar is 'n amptelike VMWare-oplossing soos hierdie regmaak, met 'n skakel na die Microsoft Knowledge Base Bestuur Windows Defender Credential Guard. Die oplossing is om Defender Credential Guard te deaktiveer (item 4 van die Disable Windows Defender Credential Guard-afdeling het my gehelp):

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

Nadat u herbegin het, sal Windows vra of u Defender Credential Guard regtig wil deaktiveer. Ja! Op hierdie manier sal VMWare Workstation terugkeer na normale werking, en ons sal onsself op dieselfde plek bevind as voor die installering van docker.

Ek het nie 'n oplossing gevind oor hoe om Hyper-V en VMWare Workstation te versoen nie, ek hoop hulle sal vriende word in nuwe weergawes.

N ander manier

Ek is lankal verslaaf aan VMWare Workstation vir verskeie doeleindes, ek het probeer afkom op Hyper-V en VirtualBox, maar die funksionaliteit het nie my take bevredig nie, en so sit ek tot vandag toe. Dit blyk dat daar 'n oplossing is om vriende te maak met VMWare, Docker en VSCode in een werksomgewing.

Docker masjien - laat jou toe om Docker Engine op 'n virtuele gasheer te laat loop en beide op afstand en plaaslik daaraan te koppel. En daar is 'n VMWare Workstation-versoenbaarheidsbestuurder daarvoor, skakel na github

Ek sal veral nie die installasie-instruksies oorvertel nie, net die lys bestanddele:

  1. Docker Toolbox (Docker masjien ingesluit)
  2. Docker Machine VMware Workstation Driver
  3. DockerDesktop

Ja, Docker Desktop sal ongelukkig ook nodig wees. As jy dit gesloop het, installeer dit dan weer, maar verwyder hierdie keer die merkblokkie oor veranderinge aan die bedryfstelsel, om nie weer VMWare Workstation te breek nie.

Ek wil dadelik daarop let dat alles goed werk vanaf 'n eenvoudige gebruiker, die installasieprogramme sal vra vir eskalasie van regte wanneer hulle dit nodig het, maar alle opdragte op die opdragreël en skrifte word vanaf die huidige gebruiker uitgevoer.

Gevolglik het die span:

$ docker-machine create --driver=vmwareworkstation dev

vanaf Boot2Docker, sal 'n dev virtualka binne geskep word wat Docker sal wees.

Hierdie virtuele masjien kan aan die VMWare Workstation GUI geheg word deur die ooreenstemmende vmx-lêer oop te maak. Maar dit is nie nodig nie, want VSCode sal nou 'n PowerShell-skrip moet laat loop (om een ​​of ander rede het my docker-masjien en docker-masjien-bestuurder-vmware-werkstasie in die bin-lêergids beland):

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

VSCode sal oopmaak om met kode op die plaaslike masjien en koppelaar in die virtuele masjien te werk. inprop Docker vir Visual Studio Code laat jou toe om houers gerieflik in 'n virtuele masjien te bestuur sonder om in die konsole te kom.

Moeilikhede:

In die proses om docker-masjien te skep, het die proses vir my gehang:

Waiting for SSH to be available...

Docker en VMWare Workstation op dieselfde Windows-masjien

En na 'n rukkie het dit geëindig met 'n oormaat pogings om 'n verbinding met die virtuele masjien te vestig.

Dit gaan alles oor sertifikaatbeleid. Wanneer u 'n virtuele masjien skep, sal u 'n ~.dockermachinemachinesdev-gids in hierdie gids hê, daar sal sertifikaatlêers wees om via SSH te koppel: id_rsa, id_rsa.pub. OpenSSH kan weier om dit te gebruik omdat dit dink hulle het toestemmingskwessies. Slegs docker-masjien sal jou niks hieroor vertel nie, maar sal eenvoudig weer koppel totdat dit verveeld raak.

oplossing: Sodra die skepping van 'n nuwe virtuele masjien begin, gaan ons na die ~ .dockermachinemachinesdev-gids en verander die regte op die gespesifiseerde lêers, een op 'n slag.

Die lêer moet deur die huidige gebruiker besit word, slegs die huidige gebruiker en STELSEL het volle toegang, alle ander gebruikers, insluitend die administrateursgroep en die administrateurs self, moet uitgevee word.

Daar kan ook probleme wees om absolute paaie van Windows na Posix-formaat om te skakel, en bindende volumes wat simboliese skakels bevat. Maar dit is 'n ander storie.

Bron: will.com

Voeg 'n opmerking