Uppgiften var enkel, installera Docker pÄ min arbetslaptop med Windows, som redan hade en del program installerade. Jag installerade Docker Desktop, skapade containrar, allt var okej, men jag upptÀckte snabbt att VMWare Workstation slutade starta virtuella maskiner med ett felmeddelande:
VMware Workstation och Device/Credential Guard Àr inte kompatibla. VMware Workstation kan köras efter att ha inaktiverat Device/Credential Guard.
Arbetet har stannat, det behöver snabbt fixas

Genom att googla kom jag fram till att detta fel uppstÄr pÄ grund av inkompatibilitet mellan VMWare Workstation och Hyper-V pÄ samma maskin. Problemet Àr kÀnt och det finns en officiell lösning frÄn VMWare för hur man , med en lÀnk till Microsofts kunskapsdatabas . Lösningen Àr att inaktivera Defender Credential Guard (punkt 4 i avsnittet Inaktivera Windows Defender Credential Guard hjÀlpte mig):
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: /dEfter omstarten kommer Windows att frÄga om du verkligen vill inaktivera Defender Credential Guard. Ja! PÄ sÄ sÀtt kommer VMWare Workstation att ÄtergÄ till normal drift, och vi hamnar dÀr vi var innan vi installerade Docker.
Jag har inte hittat nÄgon lösning för att fÄ Hyper-V och VMWare Workstation att fungera tillsammans, jag hoppas att de kommer att samarbeta i framtida versioner.
Ett annat sÀtt
Jag har lÀnge anvÀnt VMWare Workstation för olika ÀndamÄl. Jag har försökt byta till Hyper-V och VirtualBox, men funktionaliteten har inte uppfyllt mina krav, sÄ jag sitter kvar dÀr jag Àr. Det visade sig att det finns en lösning för att fÄ VMWare, Docker och VSCode att fungera tillsammans i en arbetsmiljö.
â gör det möjligt att köra Docker Engine pĂ„ en virtuell vĂ€rd och ansluta till den bĂ„de lokalt och pĂ„ distans. Och det finns en kompatibilitetsdrivrutin för VMWare Workstation,
Installationens instruktioner kommer jag inte att Äterge i detalj, bara en lista över ingredienser:
- ( ingÄr)
- anvÀndning av
Ja, tyvÀrr behövs Docker Desktop ocksÄ. Om du har avinstallerat det, installera det igen, men denna gÄng utan att markera kryssrutan för att göra Àndringar i OS, för att inte bryta VMWare Workstation igen.
Jag vill direkt pÄpeka att allt fungerar utmÀrkt som vanlig anvÀndare, installationsprogrammen kommer att be om att fÄ rÀttigheter nÀr det behövs, men alla kommandon i kommandoraden och skripten körs med den aktuella anvÀndaren.
Som ett resultat av kommandot:
$ docker-machine create --driver=vmwareworkstation devEn virtuell maskin dev kommer att skapas frÄn Boot2Docker dÀr Docker kommer att köras.
Denna virtuella maskin kan kopplas till den grafiska grÀnssnittet i VMWare Workstation genom att öppna motsvarande vmx-fil. Men det Àr inte nödvÀndigt, eftersom VSCode nu kommer att behöva startas med ett PowerShell-skript (av nÄgon anledning hamnade docker-machine och docker-machine-driver-vmwareworkstation i mappen bin):
cd ~/bin
./docker-machine env dev | Invoke-Expression
codeVSCode öppnas för att arbeta med koden pÄ den lokala maskinen och Docker i den virtuella maskinen. TillÀgget gör det enkelt att hantera containrar i den virtuella maskinen utan att behöva gÄ in i konsolen.
Problem:
Under skapandet av docker-machine hang processen:
Waiting for SSH to be available... 
Och efter en tid avslutades det med ett överskridande av försök att ansluta till den virtuella maskinen.
Allt beror pÄ certifikatspolicyn. NÀr du skapar en virtuell maskin kommer en katalog ~.dockermachinemachinesdev att skapas dÀr certifikatfiler för SSH-anslutning kommer att finnas: id_rsa, id_rsa.pub. OpenSSH kan vÀgra att anvÀnda dem, eftersom det anser att de har problem med ÄtkomstrÀttigheter. Docker-machine kommer dock inte att sÀga nÄgot om detta, utan kommer bara att försöka ansluta om och om igen tills det ger upp.
Lösningen: SÄ snart skapandet av den nya virtuella maskinen börjar, gÄr vi in i katalogen ~.dockermachinemachinesdev och Àndrar rÀttigheterna pÄ de angivna filerna, en i taget.
Ăgaren av filen bör vara den aktuella anvĂ€ndaren, full Ă„tkomst ska endast ges till den aktuella anvĂ€ndaren och SYSTEM, alla andra anvĂ€ndare, inklusive administratörsgruppen och de faktiska administratörerna, ska tas bort.
Det kan ocksÄ finnas problem med konvertering av absoluta sökvÀgar frÄn Windows-format till Posix, samt med bindning av volymer som innehÄller symboliska lÀnkar. Men det Àr en annan historia.
KĂ€lla: habr.com
