Docker ja VMWare Workstation ühel Windowsi masin

Ülesanne oli lihtne, paigaldada Docker oma Windowsi sülearvutisse, kus juba niigi on züoopark. Paigaldasin Docker Desktopi, lõin konteinerid, kõik oli okei, kuid avastasin kiiresti, et VMWare Workstation ei käivita virtuaalmasinate puhul enam, andes vea:

VMware Workstation ja Device/Credential Guard pole ühilduvad. VMware Workstationi saab kasutada pärast Device/Credential Guardi отключения.

Töö seisis, tuleb kiiresti parandada.

Docker ja VMWare Workstation ühel Windowsi masin

Otsingu kaudu selgus, et see viga ilmneb VMWare Workstationi ja Hyper-V ühilduvuse tõttu ühel masinal. Probleem on teada ja VMWare'il on ametlik lahendus, kuidas seda parandada, koos lingiga Microsofti teabebaasi Haldage Windows Defender Credential Guardi. Lahendus seisneb Defender Credential Guardi keelamises (minu jaoks aitas punkt 4 jaotisest Disable 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

Pärast Windowsi taaskäivitamist küsib see, kas tõepoolest keelata Defender Credential Guard. Jah! Nii tagastatakse VMWare Workstation normaalsesse tööseisu ja jõuame tagasi samasse kohta, kus olime enne Dockerit installimist.

Lahendusi, kuidas Hyper-V ja VMWare Workstationit sõbralikult kasutada, ei leidnud, loodan, et uutes versioonides saavad nad omavahel läbi.

Teine tee

Olen juba ammu kasutanud VMWare Workstationi erinevateks otstarveteks, proovisin liikuda Hyper-V-le ja VirtualBoxile, aga funktsionaalsus ei rahuldanud minu vajadusi, seega olen siiani nendega. Selgus, et on lahendus, kuidas VMWare, Docker ja VSCode ühes töökeskkonnas sõbraks teha.

Docker Machine — võimaldab käivitada Docker Engine'i virtuaalses hostis ja ühenduda sellega nii kaug- kui ka kohalikult. Ja selle jaoks on olemas ühilduvusjuht VMWare Workstationiga, link GitHubi

Paigaldusjuhendit ma eraldi ei kirjuta, ainult koostisosade nimekiri:

  1. Docker Toolbox (Docker Machine komplektis)
  2. Docker Machine VMware Workstation Driver
  3. Docker Desktop

Jah, Docker Desktop on kahjuks ka vajalik. Kui olete selle eemaldanud, siis paigaldame selle uuesti, kuid seekord eemaldamata juhtnuppu operatsioonisüsteemi muudatuste tegemiseks, et VMWare Workstationit jälle mitte rikutud.

Tahaksin kohe märkida, et kõik töötab suurepäraselt tavalise kasutajana, paigaldusprogrammid küsivad õiguste tõstmist, kui nad seda vajavad, kuid kõik käsud käsureas ja skriptid täidetakse praeguse kasutaja poolt.

Lõppkokkuvõttes koos käsuga:

$ docker-machine create --driver=vmwareworkstation dev

Boot2Docker loob virtuaalmasina dev, milles on Docker.

Selle virtuaalmasina saab lisada VMware Workstation'i graafilisse liidesesse, avades vastava vmx faili. Kuid see ei ole kohustuslik, kuna nüüd tuleb VSCode käivitada PowerShelli skripti kaudu (miksiküll on mul docker-machine ja docker-machine-driver-vmwareworkstation just kaustas bin):

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

Avaneb VSCode, et töötada koodi kohaliku masinaga ja Dockeriga virtuaalmasinas. Plugin Docker for Visual Studio Code ning võimaldab mugavalt hallata konteine virtuaalmasinas, mitte minnes konsooli.

Raskused:

docker-machine'i loomise protsessi ajal jääb mul protsess hanguma:

Waiting for SSH to be available...

Docker ja VMWare Workstation ühel Windowsi masin

Ja mõne aja pärast lõpetas see ülemäärase katsetega virtuaalmasinaga ühenduse loomisel.

Probleem on sertifikaatide poliitikas. Virtuaalmasina loomisel ilmub kaust ~.dockermachinemachinesdev, kus on SSH ühenduse jaoks vajalikud sertifikaadifailid: id_rsa, id_rsa.pub. OpenSSH võib neid kasutada keelduda, kuna peab neid õiguste probleemide allikaks. Ainult docker-machine ei ütle teile midagi ja lihtsalt proovib pidevalt uuesti ühendust luua, kuni see tüütuks muutub.

Lahendus: Niipea kui uue virtuaalmasina loomine algab, minge kausta ~.dockermachinemachinesdev ja muutke failide õigusi ükshaaval.

Faili omanik peab olema praegune kasutaja, täielik ligipääs on ainult praegusel kasutajal ja SYSTEM-il, kõik teised kasutajad, sealhulgas administraatorite rühm ja administrandid, tuleb eemaldada.

Samuti võivad olla probleeme Windowsi vormingust Posix vormingusse muundamisega ja sümboolsete linkidega, kuid see on juba teine lugu.

Allikas: habr.com

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster