Docker i VMWare Workstation na istom Windows računalu

Zadatak je bio jednostavan, instalirati Docker na moj radni laptop sa sustavom Windows koji već ima zoološki vrt. Instalirao sam Docker Desktop, napravio kontejnere, sve je bilo u redu, ali sam brzo otkrio da VMWare Workstation prestaje pokretati virtualne strojeve s greškom:

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

Radovi su stali, treba hitno popraviti

Docker i VMWare Workstation na istom Windows računalu

Guglanjem je otkriveno da se ova greška javlja zbog nekompatibilnosti VMWare Workstation i Hyper-V na istom stroju. Problem je poznat i postoji službeno VMWare rješenje poput ovog popraviti, s vezom na Microsoftovu bazu znanja Upravljajte Windows Defender Credential Guard. Rješenje je onemogućiti Defender Credential Guard (pomogla mi je točka 4 odjeljka Onemogući Windows Defender Credential Guard):

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

Nakon ponovnog pokretanja, Windows će vas pitati želite li onemogućiti Defender Credential Guard. Da! Na ovaj način VMWare Workstation će se vratiti u normalan rad i bit ćemo na istom mjestu kao i prije instaliranja dockera.

Još uvijek nisam pronašao rješenje za pomirenje Hyper-V i VMWare Workstation, nadam se da će postati prijatelji u novim verzijama.

Drugi način

Dugo sam bio navučen na VMWare Workstation u razne svrhe, pokušao sam se prebaciti na Hyper-V i VirtualBox, ali funkcionalnost nije zadovoljila moje potrebe, i tu sam zapeo do danas. Ispostavilo se da postoji rješenje kako spojiti VMWare, Docker i VSCode u jedno radno okruženje.

Docker stroj — omogućuje vam da pokrenete Docker Engine na virtualnom hostu i povežete se s njim i udaljeno i lokalno. A tu je i upravljački program za kompatibilnost VMWare Workstation, poveznica na github

Neću posebno prepričavati upute za instalaciju, samo popis sastojaka:

  1. Docker Toolbox (Docker stroj uključeno)
  2. Docker Machine VMware Driver za radnu stanicu
  3. Docker radna površina

Da, Docker Desktop, nažalost, također će biti potreban. Ako ste ga srušili, onda ga ponovno instalirajte, ali ovaj put uklonite potvrdni okvir o izmjenama OS-a, kako ne biste ponovno pokvarili VMWare Workstation.

Želio bih odmah napomenuti da sve radi dobro od jednostavnog korisnika, instalacijski programi će tražiti eskalaciju prava kada im je to potrebno, ali sve naredbe u naredbenom retku i skripte izvršavaju se od trenutnog korisnika.

Kao rezultat, naredba:

$ docker-machine create --driver=vmwareworkstation dev

iz Boot2Dockera će se kreirati dev virtualni stroj unutar kojeg će se instalirati Docker.

Ovaj virtualni stroj može se priključiti na grafičko sučelje VMWare Workstation otvaranjem odgovarajuće vmx datoteke. Ali to nije potrebno, jer će VSCode sada morati pokrenuti PowerShell kao skriptu (iz nekog razloga, docker-machine i docker-machine-driver-vmwareworkstation završili su u mapi bin):

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

VSCode će se otvoriti za rad s kodom na lokalnom računalu i Docker na virtualnom računalu. Uključiti Docker za Visual Studio Code omogućuje vam praktično upravljanje spremnicima u virtualnom stroju bez odlaska u konzolu.

Poteškoće:

Tijekom stvaranja docker-stroja, moj proces se zamrznuo:

Waiting for SSH to be available...

Docker i VMWare Workstation na istom Windows računalu

I nakon nekog vremena završilo je s novim pokušajima uspostavljanja veze s virtualnim strojem.

Sve je u politici certifikata. Prilikom izrade virtualnog stroja imat ćete direktorij ~.dockermachinemachinesdev. U tom direktoriju nalazit će se datoteke certifikata za povezivanje putem SSH-a: id_rsa, id_rsa.pub. OpenSSH ih može odbiti koristiti jer misli da imaju problema s dozvolama. Jedino vam docker-stroj neće reći ništa o tome, jednostavno će se ponovno spojiti dok ne dosadi.

rješenje: Čim započne stvaranje novog virtualnog stroja, idite u direktorij ~.dockermachinemachinesdev i promijenite prava na navedene datoteke, jednu po jednu.

Vlasnik datoteke mora biti trenutni korisnik, samo trenutni korisnik i SUSTAV imaju puni pristup, svi ostali korisnici, uključujući grupu administratora i same administratore, moraju biti izbrisani.

Također može biti problema s pretvaranjem apsolutnih staza iz Windows formata u Posix i s obvezujućim volumenima koji sadrže simboličku vezu. Ali to je druga priča.

Izvor: www.habr.com

Dodajte komentar