Docker og VMWare Workstation på den samme Windows-maskine

Opgaven var enkel, sæt Docker på min fungerende Windows-laptop, som allerede har en zoologisk have. Jeg installerede Docker Desktop og oprettede containere, alt er ok, men jeg opdagede hurtigt, at VMWare Workstation holdt op med at køre virtuelle maskiner med en fejl:

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

Arbejdet er stoppet, det haster med at reparere

Docker og VMWare Workstation på den samme Windows-maskine

Ved at google blev det fundet ud af, at denne fejl opstår på grund af inkompatibiliteten af ​​VMWare Workstation og Hyper-V på den samme maskine. Problemet er kendt, og der er en officiel VMWare-løsning som denne fix, med et link til Microsoft Knowledge Base Administrer Windows Defender Credential Guard. Løsningen er at deaktivere Defender Credential Guard (punkt 4 i sektionen Disable Windows Defender Credential Guard hjalp 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 genstart vil Windows spørge, om du virkelig vil deaktivere Defender Credential Guard. Ja! På denne måde vil VMWare Workstation vende tilbage til normal drift, og vi vil befinde os samme sted som før installation af docker.

Jeg har ikke fundet en løsning på hvordan man forener Hyper-V og VMWare Workstation, jeg håber de bliver venner i nye versioner.

Anden måde

Jeg har længe været afhængig af VMWare Workstation til forskellige formål, jeg forsøgte at komme afsted på Hyper-V og VirtualBox, men funktionaliteten opfyldte ikke mine opgaver, og så sidder jeg den dag i dag. Det viste sig, at der er en løsning, hvordan man får venner med VMWare, Docker og VSCode i ét arbejdsmiljø.

Docker maskine - giver dig mulighed for at køre Docker Engine på en virtuel vært og oprette forbindelse til den både eksternt og lokalt. Og der er en VMWare Workstation-kompatibilitetsdriver til det, link til github

Jeg vil ikke genfortælle installationsinstruktionerne specielt, kun listen over ingredienser:

  1. Docker Værktøjskasse (Docker maskine inkluderet)
  2. Docker Machine VMware Workstation Driver
  3. DockerDesktop

Ja, Docker Desktop vil desværre også være nødvendig. Hvis du har revet det ned, så installer det igen, men denne gang fjerner du afkrydsningsfeltet om at lave ændringer i operativsystemet for ikke at ødelægge VMWare Workstation igen.

Jeg vil med det samme bemærke, at alt fungerer fint fra en simpel bruger, installationsprogrammerne vil bede om eskalering af rettigheder, når de har brug for det, men alle kommandoer på kommandolinjen og scripts udføres fra den aktuelle bruger.

Som et resultat, holdet:

$ docker-machine create --driver=vmwareworkstation dev

fra Boot2Docker vil der blive oprettet en dev virtualka indeni, som vil være Docker.

Denne virtuelle maskine kan knyttes til VMWare Workstation GUI ved at åbne den tilsvarende vmx-fil. Men dette er ikke nødvendigt, fordi VSCode nu skal køre et PowerShell-script (af en eller anden grund endte min docker-maskine og docker-machine-driver-vmware-arbejdsstation i bin-mappen):

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

VSCode vil åbne for at arbejde med kode på den lokale maskine og docker i den virtuelle maskine. plugin Docker til Visual Studio Code giver dig mulighed for bekvemt at administrere containere i en virtuel maskine uden at komme ind i konsollen.

Vanskeligheder:

I processen med at skabe docker-maskine hang processen for mig:

Waiting for SSH to be available...

Docker og VMWare Workstation på den samme Windows-maskine

Og efter et stykke tid endte det med et overskud af forsøg på at etablere forbindelse til den virtuelle maskine.

Det handler om certifikatpolitik. Når du opretter en virtuel maskine, vil du have en ~.dockermachinemachinesdev-mappe i denne mappe, der vil være certifikatfiler til tilslutning via SSH: id_rsa, id_rsa.pub. OpenSSH kan nægte at bruge dem, fordi det mener, at de har tilladelsesproblemer. Kun docker-maskine vil ikke fortælle dig noget om dette, men vil blot genoprette forbindelsen, indtil den keder sig.

opløsning: Så snart oprettelsen af ​​en ny virtuel maskine begynder, går vi til mappen ~ .dockermachinemachinesdev og ændrer rettighederne til de angivne filer, én ad gangen.

Filen skal ejes af den nuværende bruger, kun den nuværende bruger og SYSTEM har fuld adgang, alle andre brugere, inklusive administratorgruppen og administratorerne selv, skal slettes.

Der kan også være problemer med at konvertere absolutte stier fra Windows til Posix-format og binde bind, der indeholder symbolske links. Men det er en anden historie.

Kilde: www.habr.com

Tilføj en kommentar