Docker i VMWare Workstation na istoj Windows mašini

Zadatak je bio jednostavan, stavim Docker na moj radni Windows laptop, koji već ima zoološki vrt. Instalirao sam Docker Desktop i napravio kontejnere, sve je u redu, ali sam brzo otkrio da je VMWare Workstation prestao da pokreće virtuelne mašine sa greškom:

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

Radovi su zaustavljeni, hitna sanacija

Docker i VMWare Workstation na istoj Windows mašini

Guglanjem je otkriveno da do ove greške dolazi zbog nekompatibilnosti VMWare Workstation i Hyper-V na istoj mašini. Problem je poznat i postoji službeno VMWare rješenje poput ovog popravi, sa vezom do Microsoftove baze znanja Upravljajte Windows Defender Credential Guard. Rješenje je da onemogućite Defender Credential Guard (pomogla mi je stavka 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 da li zaista želite da onemogućite Defender Credential Guard. Da! Na ovaj način VMWare Workstation će se vratiti u normalan rad, a mi ćemo se naći na istom mjestu kao i prije instaliranja dockera.

Nisam našao rješenje kako da uskladim Hyper-V i VMWare Workstation, nadam se da će se sprijateljiti u novim verzijama.

Drugi način

Dugo sam bio ovisan o VMWare Workstation-u za razne svrhe, pokušavao sam da izađem na Hyper-V i VirtualBox, ali funkcionalnost nije zadovoljila moje zadatke, i tako sjedim do danas. Ispostavilo se da postoji rješenje kako se sprijateljiti s VMWareom, Dockerom i VSCodeom u jednom radnom okruženju.

docker mašina - omogućava vam da pokrenete Docker Engine na virtuelnom hostu i povežete se na njega i daljinski i lokalno. I za to postoji drajver za kompatibilnost VMWare Workstation, link na github

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

  1. Docker Toolbox (docker mašina uključeno)
  2. Docker Machine VMware upravljački program radne stanice
  3. DockerDesktop

Da, Docker Desktop će, nažalost, također biti potreban. Ako ste ga srušili, onda ga ponovo instalirajte, ali ovog puta uklonite potvrdni okvir o uvođenju promjena u OS, kako ne biste ponovo pokvarili VMWare Workstation.

Odmah želim napomenuti da od jednostavnog korisnika sve radi dobro, instalacijski programi će tražiti eskalaciju prava kada im zatreba, ali sve komande u komandnoj liniji i skripte se izvršavaju od trenutnog korisnika.

Kao rezultat, tim:

$ docker-machine create --driver=vmwareworkstation dev

iz Boot2Docker-a, dev virtualka će biti kreirana unutar koje će biti Docker.

Ova virtuelna mašina se može priključiti na VMWare Workstation GUI otvaranjem odgovarajuće vmx datoteke. Ali to nije neophodno, jer će VSCode sada morati da pokrene PowerShell skriptu (iz nekog razloga, moj docker-machine i docker-machine-driver-vmwareworkstation završili su u fascikli bin):

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

VSCode će se otvoriti za rad sa kodom na lokalnoj mašini i docker-om u virtuelnoj mašini. plugin Docker za Visual Studio Code omogućava vam praktično upravljanje kontejnerima u virtuelnoj mašini bez ulaska u konzolu.

poteškoće:

U procesu kreiranja docker-machine, proces mi je visio:

Waiting for SSH to be available...

Docker i VMWare Workstation na istoj Windows mašini

I nakon nekog vremena završilo se sa viškom pokušaja uspostavljanja veze sa virtuelnom mašinom.

Sve je u politici certifikata. Kada kreirate virtuelnu mašinu, imaćete ~.dockermachinemachinesdev direktorijum u ovom direktorijumu će biti fajlovi sertifikata za povezivanje preko SSH: id_rsa, id_rsa.pub. OpenSSH može odbiti da ih koristi jer misli da imaju problema s dozvolama. Samo vam docker-machine neće ništa reći o tome, već će se jednostavno ponovo povezati dok mu ne dosadi.

rješenje: Čim kreacija nove virtuelne mašine počne, idemo u direktorijum ~ .dockermachinemachinesdev i menjamo prava na navedene datoteke, jednu po jednu.

Fajl mora biti u vlasništvu trenutnog korisnika, samo trenutni korisnik i SISTEM imaju potpuni pristup, svi ostali korisnici, uključujući grupu administratora i same administratore, moraju biti obrisani.

Takođe mogu postojati problemi pri konvertovanju apsolutnih putanja iz Windows u Posix format i povezivanju volumena koji sadrže simboličke veze. Ali to je druga priča.

izvor: www.habr.com

Dodajte komentar