Docker ja VMWare Workstation samas Windowsi masinas

Ülesanne oli lihtne, installige Docker minu Windowsiga töölauale, millel on juba loomaaed. Installisin Docker Desktopi, lõin konteinerid, kõik oli ok, kuid avastasin kiiresti, et VMWare Workstation lõpetas virtuaalmasinate käivitamise veaga:

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

Töö on seisma jäänud, vajab kiiret korda

Docker ja VMWare Workstation samas Windowsi masinas

Guugeldades selgus, et see viga tekib VMWare Workstationi ja Hyper-V kokkusobimatuse tõttu samas masinas. Probleem on teada ja selline ametlik VMWare lahendus on olemas parandama, lingiga Microsofti teadmistebaasi Windows Defenderi mandaadivalve haldamine. Lahendus on keelata Defender Credential Guard (mind aitas jaotise Keela Windows Defender Credential Guard punkt 4):

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

Pärast taaskäivitamist küsib Windows teilt, kas keelata Defender Credential Guard. Jah! Nii naaseb VMWare Workstation normaalsesse töösse ja oleme samas kohas, kus enne dokkeri installimist.

Ma ei ole ikka veel leidnud lahendust Hyper-V ja VMWare Workstationi ühitamiseks, loodan, et nad saavad uutes versioonides sõpradeks.

Teine tee

Olen VMWare Workstationiga erinevatel eesmärkidel pikka aega konksus olnud, proovinud Hyper-V-le ja VirtualBoxile üle minna, kuid funktsionaalsus ei rahuldanud mu vajadusi ja olen siiani ummikus. Selgus, et on olemas lahendus, kuidas ühendada VMWare, Docker ja VSCode ühes töökeskkonnas.

Dockeri masin — võimaldab käivitada Docker Engine'i virtuaalses hostis ja sellega ühenduse luua nii eemalt kui ka kohapeal. Ja selle jaoks on olemas VMWare Workstationi ühilduvuse draiver, link githubile

Paigaldusjuhiseid ma eriti ümber ei räägi, vaid koostisosade loetelu:

  1. Dockeri tööriistakast (Dockeri masin kaasas)
  2. Docker Machine VMware tööjaama draiver
  3. Dockeri töölaud

Jah, kahjuks läheb vaja ka Docker Desktopi. Kui lammutasite selle, installige see uuesti, kuid seekord eemaldage märkeruut OS-i muutmise kohta, et mitte uuesti VMWare Workstationi rikkuda.

Tahaksin kohe märkida, et lihtkasutajal toimib kõik hästi, installiprogrammid küsivad vajadusel õiguste eskalatsiooni, kuid kõik käsureal olevad käsud ja skriptid käivitatakse praeguselt kasutajalt.

Selle tulemusena käsk:

$ docker-machine create --driver=vmwareworkstation dev

Boot2Dockerist luuakse arendaja virtuaalmasin, mille sisse installitakse Docker.

Selle virtuaalmasina saab ühendada VMWare Workstationi graafilise liidesega, avades vastava vmx faili. Kuid see pole vajalik, sest PowerShell peab nüüd VSCode'i käivitama skriptina (miskipärast sattusid docker-machine ja docker-machine-driver-vmwareworkstation prügikasti kausta):

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

VSCode avaneb, et töötada koos koodiga kohalikus masinas ja Dockeriga virtuaalses masinas. Sisse panema Docker Visual Studio koodi jaoks võimaldab mugavalt hallata konteinereid virtuaalmasinas ilma konsooli sisenemata.

Raskused:

Dokkimismasina loomise ajal minu protsess hangus:

Waiting for SSH to be available...

Docker ja VMWare Workstation samas Windowsi masinas

Ja mõne aja pärast lõppes see uute katsetega virtuaalmasinaga ühendust luua.

Kõik on seotud sertifikaadipoliitikaga. Virtuaalse masina loomisel on teil kataloog ~.dockermachinemachinesdev, selles kataloogis on sertifikaadi failid SSH kaudu ühenduse loomiseks: id_rsa, id_rsa.pub. OpenSSH võib keelduda nende kasutamisest, kuna arvab, et neil on õigustega probleeme. Ainult dokkimismasin ei ütle teile sellest midagi, see loob lihtsalt uuesti ühenduse, kuni hakkab igav.

lahendus: Niipea kui uue virtuaalmasina loomine algab, minge kataloogi ~.dockermachinemachinesdev ja muutke ükshaaval määratud failide õigusi.

Faili omanik peab olema praegune kasutaja, ainult praegusel kasutajal ja SÜSTEEMIl on täielik juurdepääs, kõik teised kasutajad, sealhulgas administraatorite grupp ja administraatorid ise, tuleb kustutada.

Probleeme võib esineda ka absoluutsete teede teisendamisel Windowsi vormingust Posixisse ja sümboolset linki sisaldavate köidetega. Aga see on teine ​​lugu.

Allikas: www.habr.com

Lisa kommentaar