Zadatak je bio jednostavan, instalirati Docker na svoj radni laptop s Windowsom, na kojem je već bila prava zbrka. Instalirao sam Docker Desktop, stvorio kontejnere, sve je u redu, ali ubrzo sam otkrio da VMWare Workstation više ne pokreće virtualne mašine i javlja grešku:
VMware Workstation i Device/Credential Guard nisu kompatibilni. VMware Workstation se može pokrenuti nakon onemogućavanja Device/Credential Guarda.
Rad je stao, treba hitno popraviti.

Metodom pretraživanja na internetu otkriveno je da se ova greška javlja zbog nespojivosti VMWare Workstation i Hyper-V na jednom računalu. Problema je poznat i postoji službeno rješenje VMWare kako ga , uz poveznicu na Microsoftovu bazu znanja . Rješenje se sastoji od onemogućavanja Defender Credential Guarda (meni je pomogla točka 4 u odjeljku 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: /dNakon ponovnog pokretanja Windows će pitati želite li zaista isključiti Defender Credential Guard. Da! Tako će VMWare Workstation ponovno funkcionirati normalno, i naći ćemo se na istom mjestu kao i prije instalacije Dockera.
Rješenja za spajanje Hyper-V i VMWare Workstation nisam pronašao, nadam se da će se u novim verzijama uspjeti uklopiti.
Druga opcija
Već dugo koristim VMWare Workstation za razne svrhe, pokušao sam prijeći na Hyper-V i VirtualBox, ali funkcionalnosti nisu zadovoljile moje potrebe, tako da sam do danas ostao na tome. Ispostavilo se da postoji rješenje kako spojiti VMWare, Docker i VSCode u jednoj radnoj sredini.
— omogućava pokretanje Docker Engine-a na virtualnom hostu i povezivanje s njim kako lokalno, tako i udaljeno. Za njega postoji upravljački program kompatibilnosti s VMWare Workstation,
Neću prepričavati upute za instalaciju, samo ću navesti popis sastojaka:
- ( u kompletu)
- Docker Desktop
Da, nažalost, također će biti potreban Docker Desktop. Ako ste ga uklonili, instalirajte ga ponovno, ali ovaj put uklonite oznaku o promjenama u OS-u, kako ne biste opet pokvarili VMWare Workstation.
Odmah želim napomenuti da sve fantastično funkcionira s običnim korisnikom, instalacijski programi će tražiti eskalaciju prava kada bude potrebno, ali sve naredbe u komandnoj liniji i skripte izvršavaju se od trenutnog korisnika.
Na kraju, naredbom:
$ docker-machine create --driver=vmwareworkstation devIz Boot2Docker će se stvoriti virtualna mašina dev unutar koje će biti Docker.
Ovu virtualku možete priključiti u grafičko sučelje VMWare Workstation otvaranjem odgovarajuće vmx datoteke. No to nije obavezno, jer će sada trebalo pokrenuti PowerShell skriptu za VSCode (iz nekog razloga docker-machine i docker-machine-driver-vmwareworkstation završili su u mapi bin):
cd ~/bin
. /docker-machine env dev | Invoke-Expression
codeOtvorit će se VSCode za rad s kodom na lokalnoj mašini i Dockerom u virtualnoj mašini. Plugin omogućava jednostavno upravljanje kontejnerima u virtualki bez ulaska u konzolu.
Teškoće:
Tijekom stvaranja docker-machine, proces mi je zastao:
Waiting for SSH to be available... 
I nakon nekog vremena završio je s prekoračenjem pokušaja uspostavljanja veze s virtualkom.
Sve je to zbog politike vezane uz certifikate. Pri stvaranju virtualne mašine, dobit ćete katalog ~.dockermachinemachinesdev u kojem će biti datoteke certifikata za povezivanje putem SSH: id_rsa, id_rsa.pub. OpenSSH može odbiti njihovu upotrebu, jer smatra da imaju problema s dozvolama. No docker-machine vam o tome neće reći ništa, već će se samo ponovo povezivati dok vas ne umori.
Rešenje: Kada započne stvaranje nove virtualne mašine, ulazimo u katalog ~.dockermachinemachinesdev i mijenjamo dozvole na spomenutim datotekama, jednu po jednu.
Vlasnik datoteke treba biti trenutni korisnik, potpuni pristup ima samo trenutni korisnik i SYSTEM, dok se svi ostali korisnici, uključujući administrativnu grupu i same administratore, trebaju ukloniti.
Mogu također biti problemi s pretvaranjem apsolutnih putanja iz Windows formata u Posix, i s povezivanjem volumena koji sadrže simboličke linkove. No to je već druga priča.
Izvor: habr.com
