„Docker“ ir „VMWare Workstation“ tame pačiame „Windows“ įrenginyje

Užduotis buvo paprasta, įdėkite „Docker“ į mano veikiantį „Windows“ nešiojamąjį kompiuterį, kuriame jau yra zoologijos sodas. Įdiegiau „Docker Desktop“ ir sukūriau konteinerius, viskas gerai, bet greitai sužinojau, kad „VMWare Workstation“ sustabdė virtualiųjų mašinų paleidimą su klaida:

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

Darbai sustojo, skubiai reikia remontuoti

„Docker“ ir „VMWare Workstation“ tame pačiame „Windows“ įrenginyje

Googlinant išsiaiškinta, kad ši klaida atsiranda dėl VMWare Workstation ir Hyper-V nesuderinamumo tame pačiame kompiuteryje. Problema žinoma ir yra toks oficialus VMWare sprendimas išspręsti, su nuoroda į „Microsoft“ žinių bazę Tvarkykite „Windows Defender“ kredencialų apsaugą. Sprendimas yra išjungti „Defender Credential Guard“ (man padėjo skyriaus „Išjungti Windows Defender Credential Guard“ 4 punktas):

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

Paleidus iš naujo, „Windows“ paklaus, ar tikrai norite išjungti „Defender Credential Guard“. Taip! Tokiu būdu VMWare Workstation grįš į įprastą veikimą ir atsidursime toje pačioje vietoje, kur prieš diegiant docker.

Neradau sprendimo, kaip suderinti „Hyper-V“ ir „VMWare Workstation“, tikiuosi, kad jie susidraugaus naujose versijose.

Kitas būdas

Seniai buvau priklausomas nuo VMWare Workstation įvairiems tikslams, bandžiau išlipti Hyper-V ir VirtualBox, bet funkcionalumas netenkino mano užduočių, todėl sėdžiu iki šiol. Paaiškėjo, kad yra sprendimas, kaip susirasti draugų VMWare, Docker ir VSCode vienoje darbo aplinkoje.

Docker mašina - leidžia paleisti Docker Engine virtualiame pagrindiniame kompiuteryje ir prisijungti prie jo tiek nuotoliniu būdu, tiek vietoje. Yra ir VMWare Workstation suderinamumo tvarkyklė, nuoroda į github

Ypatingai neperpasakosiu montavimo instrukcijos, tik sudedamųjų dalių sąrašą:

  1. Docker Toolbox (Docker mašina įskaitant)
  2. Docker Machine VMware Workstation tvarkyklė
  3. „Docker“ darbalaukis

Taip, Docker Desktop, deja, taip pat bus reikalingas. Jei jį nugriovėte, įdiekite dar kartą, bet šį kartą pašalinkite žymimąjį laukelį, kad pakeistumėte OS, kad vėl nesugadintumėte VMWare Workstation.

Iš karto noriu pastebėti, kad iš paprasto vartotojo viskas veikia puikiai, diegimo programos prašys teisių eskalavimo, kai to prireiks, tačiau visos komandų eilutės komandos ir scenarijai vykdomi iš dabartinio vartotojo.

Dėl to komanda:

$ docker-machine create --driver=vmwareworkstation dev

iš Boot2Docker, viduje bus sukurta dev virtualka, kurios viduje bus Docker.

Šią virtualią mašiną galima prijungti prie VMWare Workstation GUI atidarius atitinkamą vmx failą. Bet tai nėra būtina, nes VSCode dabar turės paleisti PowerShell scenarijų (dėl tam tikrų priežasčių mano docker-machine ir docker-machine-driver-vmwareworkstation atsidūrė šiukšliadėžės aplanke):

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

VSCode bus atidarytas dirbti su kodu vietinėje mašinoje ir dokeryje virtualioje mašinoje. Prijunkite „Docker“, skirtas „Visual Studio“ kodui leidžia patogiai tvarkyti konteinerius virtualioje mašinoje neįėjus į konsolę.

Sunkumai:

Kuriant doko mašiną, procesas man pakibo:

Waiting for SSH to be available...

„Docker“ ir „VMWare Workstation“ tame pačiame „Windows“ įrenginyje

Ir po kurio laiko tai baigėsi bandymų užmegzti ryšį su virtualia mašina pertekliumi.

Viskas priklauso nuo sertifikatų politikos. Kurdami virtualią mašiną turėsite ~.dockermachinemachinesdev katalogą šiame kataloge bus sertifikatų failai prisijungimui per SSH: id_rsa, id_rsa.pub. OpenSSH gali atsisakyti juos naudoti, nes mano, kad jie turi leidimų problemų. Tik dokeris-mašina jums nieko apie tai nepasakys, o tiesiog prisijungs, kol nusibos.

sprendimas: Kai tik prasideda naujos virtualios mašinos kūrimas, einame į ~ .dockermachinemachinesdev katalogą ir po vieną keičiame teises į nurodytus failus.

Failas turi priklausyti dabartiniam vartotojui, tik dabartinis vartotojas ir SISTEMA turi visišką prieigą, visi kiti vartotojai, įskaitant administratorių grupę ir pačius administratorius, turi būti ištrinti.

Taip pat gali kilti problemų konvertuojant absoliučius kelius iš Windows į Posix formatą ir surišant tomus su simbolinėmis nuorodomis. Bet tai jau kita istorija.

Šaltinis: www.habr.com

Добавить комментарий