Docker og VMWare Workstation på samme Windows-maskin

Oppgaven var enkel, satte Docker på min fungerende Windows-laptop, som allerede har en dyrehage. Jeg installerte Docker Desktop og laget containere, alt er ok, men jeg oppdaget raskt at VMWare Workstation sluttet å kjøre virtuelle maskiner med en feil:

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

Arbeidet har stoppet, det haster med utbedring

Docker og VMWare Workstation på samme Windows-maskin

Ved å google ble det funnet ut at denne feilen oppstår på grunn av inkompatibiliteten til VMWare Workstation og Hyper-V på samme maskin. Problemet er kjent og det finnes en offisiell VMWare-løsning som dette ordne, med en lenke til Microsoft Knowledge Base Administrer Windows Defender Credential Guard. Løsningen er å deaktivere Defender Credential Guard (element 4 i Deaktiver Windows Defender Credential Guard-delen hjalp meg):

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

Etter omstart vil Windows spørre om du virkelig vil deaktivere Defender Credential Guard. Ja! På denne måten vil VMWare Workstation gå tilbake til normal drift, og vi befinner oss på samme sted som før installasjon av docker.

Jeg har ikke funnet en løsning på hvordan jeg skal forene Hyper-V og VMWare Workstation, jeg håper de blir venner i nye versjoner.

Annen vei

Jeg har lenge vært avhengig av VMWare Workstation for ulike formål, jeg prøvde å gå av på Hyper-V og VirtualBox, men funksjonaliteten tilfredsstilte ikke oppgavene mine, og så sitter jeg den dag i dag. Det viste seg at det er en løsning for å få venner VMWare, Docker og VSCode i ett arbeidsmiljø.

Docker-maskin - lar deg kjøre Docker Engine på en virtuell vert og koble til den både eksternt og lokalt. Og det er en VMWare Workstation-kompatibilitetsdriver for det, lenke til github

Jeg vil ikke gjenfortelle installasjonsinstruksjonene spesielt, bare listen over ingredienser:

  1. Docker Toolbox (Docker-maskin inkludert)
  2. Docker Machine VMware Workstation Driver
  3. DockerDesktop

Ja, Docker Desktop vil dessverre også være nødvendig. Hvis du har revet det, installer det på nytt, men denne gangen fjerner du avmerkingsboksen for å gjøre endringer i operativsystemet, for ikke å ødelegge VMWare Workstation igjen.

Jeg vil merke med en gang at alt fungerer bra fra en enkel bruker, installasjonsprogrammene vil be om eskalering av rettigheter når de trenger det, men alle kommandoer på kommandolinjen og skript utføres fra gjeldende bruker.

Som et resultat, laget:

$ docker-machine create --driver=vmwareworkstation dev

fra Boot2Docker vil en dev virtualka bli opprettet inne som vil være Docker.

Denne virtuelle maskinen kan kobles til VMWare Workstation GUI ved å åpne den tilsvarende vmx-filen. Men dette er ikke nødvendig, fordi VSCode nå må kjøre et PowerShell-skript (av en eller annen grunn havnet min docker-maskin og docker-machine-driver-vmwareworkstation i bin-mappen):

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

VSCode vil åpne for å fungere med kode på den lokale maskinen og docker i den virtuelle maskinen. plugg inn Docker for Visual Studio Code lar deg enkelt administrere containere i en virtuell maskin uten å komme inn i konsollen.

Vanskeligheter:

I prosessen med å lage docker-maskin hang prosessen for meg:

Waiting for SSH to be available...

Docker og VMWare Workstation på samme Windows-maskin

Og etter en stund endte det med et overskudd av forsøk på å etablere en forbindelse med den virtuelle maskinen.

Alt handler om sertifikatpolitikk. Når du oppretter en virtuell maskin, vil du ha en ~.dockermachinemachinesdev-katalog i denne katalogen, det vil være sertifikatfiler for tilkobling via SSH: id_rsa, id_rsa.pub. OpenSSH kan nekte å bruke dem fordi de tror de har tillatelsesproblemer. Bare docker-maskin vil ikke fortelle deg noe om dette, men vil ganske enkelt koble til på nytt til den kjeder seg.

løsning: Så snart opprettelsen av en ny virtuell maskin begynner, går vi til ~ .dockermachinemachinesdev-katalogen og endrer rettighetene til de angitte filene, én om gangen.

Filen må eies av gjeldende bruker, kun gjeldende bruker og SYSTEM har full tilgang, alle andre brukere, inkludert administratorgruppen og administratorene selv, må slettes.

Det kan også være problemer med å konvertere absolutte baner fra Windows til Posix-format, og binde bind som inneholder symbolske lenker. Men det er en annen historie.

Kilde: www.habr.com

Legg til en kommentar