Docker och VMWare Workstation pÄ samma Windows-maskin.

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

Docker och VMWare Workstation pÄ samma Windows-maskin.

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 fixar det, med en lÀnk till Microsofts kunskapsdatabas Hantera Windows Defender Credential Guard. 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: /d

Efter 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ö.

Docker Machine — 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, lĂ€nk till GitHub

Installationens instruktioner kommer jag inte att Äterge i detalj, bara en lista över ingredienser:

  1. Docker Toolbox (Docker Machine ingÄr)
  2. Docker Machine VMware Workstation Driver
  3. 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 dev

En 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
code

VSCode öppnas för att arbeta med koden pÄ den lokala maskinen och Docker i den virtuella maskinen. TillÀgget Docker for Visual Studio Code 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...

Docker och VMWare Workstation pÄ samma Windows-maskin.

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

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster