Docker un VMWare Workstation tajā pašā Windows mašīnā

Uzdevums bija vienkāršs, uzliku Docker manā Windows klēpjdatorā, kurā jau ir zoodārzs. Es instalēju Docker Desktop un izveidoju konteinerus, viss ir kārtībā, bet es ātri atklāju, ka VMWare Workstation pārtrauca virtuālo mašīnu darbību ar kļūdu:

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

Darbi apstājušies, steidzami jāremontē

Docker un VMWare Workstation tajā pašā Windows mašīnā

Googlējot, tika noskaidrots, ka šī kļūda rodas VMWare Workstation un Hyper-V nesaderības dēļ vienā un tajā pašā mašīnā. Problēma ir zināma, un ir tāds oficiāls VMWare risinājums labot, ar saiti uz Microsoft zināšanu bāzi Pārvaldiet Windows Defender Credential Guard. Risinājums ir atspējot Defender Credential Guard (man palīdzēja sadaļas Atspējot Windows Defender Credential Guard 4. vienums):

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ēc restartēšanas sistēma Windows jautās, vai tiešām vēlaties atspējot Defender Credential Guard. Jā! Tādā veidā VMWare Workstation atgriezīsies normālā režīmā, un mēs atradīsimies tajā pašā vietā, kur pirms doka instalēšanas.

Es neesmu atradis risinājumu, kā saskaņot Hyper-V un VMWare Workstation, ceru, ka viņi kļūs par draugiem jaunajās versijās.

Vēl viens veids

Es jau sen esmu atkarīgs no VMWare Workstation dažādiem mērķiem, mēģināju izkāpt uz Hyper-V un VirtualBox, bet funkcionalitāte neapmierināja manus uzdevumus, un tā es sēžu līdz šai dienai. Izrādījās, ka ir risinājums, kā vienā darba vidē iegūt draugus VMWare, Docker un VSCode.

Docker mašīna - ļauj palaist Docker Engine virtuālajā resursdatorā un izveidot savienojumu ar to gan attālināti, gan lokāli. Un tam ir VMWare Workstation saderības draiveris, saite uz github

Es īpaši nepārstāstīšu uzstādīšanas instrukcijas, tikai sastāvdaļu sarakstu:

  1. Docker Toolbox (Docker mašīna iekļauts)
  2. Docker Machine VMware darbstacijas draiveris
  3. Docker darbvirsma

Jā, diemžēl būs vajadzīgs arī Docker Desktop. Ja esat to nojaucis, instalējiet to vēlreiz, bet šoreiz noņemiet izvēles rūtiņu par izmaiņu veikšanu operētājsistēmā, lai vēlreiz nesabojātu VMWare Workstation.

Uzreiz gribu atzīmēt, ka no vienkārša lietotāja viss darbojas labi, instalēšanas programmas prasīs tiesību eskalāciju, kad tām tas būs nepieciešams, bet visas komandas komandrindā un skripti tiek izpildīti no pašreizējā lietotāja.

Rezultātā komanda:

$ docker-machine create --driver=vmwareworkstation dev

no Boot2Docker tiks izveidota dev virtualka, kuras iekšpusē būs Docker.

Šo virtuālo mašīnu var pievienot VMWare Workstation GUI, atverot atbilstošo vmx failu. Bet tas nav nepieciešams, jo VSCode tagad būs jāpalaiž PowerShell skripts (kādu iemeslu dēļ mans docker-machine un docker-machine-driver-vmwareworkstation nonāca bin mapē):

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

Tiks atvērts VSCode, lai strādātu ar kodu vietējā datorā un dokotāju virtuālajā mašīnā. iespraust Docker Visual Studio kodam ļauj ērti pārvaldīt konteinerus virtuālajā mašīnā, neiekļūstot konsolē.

Grūtības:

Dokera-mašīnas izveides procesā process man palika:

Waiting for SSH to be available...

Docker un VMWare Workstation tajā pašā Windows mašīnā

Un pēc kāda laika tas beidzās ar pārmērīgiem mēģinājumiem izveidot savienojumu ar virtuālo mašīnu.

Tas viss attiecas uz sertifikātu politiku. Veidojot virtuālo mašīnu, jums būs ~.dockermachinemachinesdev direktorijs šajā direktorijā būs sertifikātu faili savienojumam caur SSH: id_rsa, id_rsa.pub. OpenSSH var atteikties tos izmantot, jo uzskata, ka tiem ir atļaujas problēmas. Tikai dokeris-mašīna par to neko nestāstīs, bet vienkārši izveidos savienojumu, līdz sāks garlaicīgi.

šķīdums: Tiklīdz tiek sākta jaunas virtuālās mašīnas izveide, mēs ejam uz direktoriju ~ .dockermachinemachinesdev un mainām tiesības uz norādītajiem failiem, pa vienam.

Faila īpašumā ir jābūt pašreizējam lietotājam, tikai pašreizējam lietotājam un SISTĒMAI ir pilna piekļuve, visi pārējie lietotāji, tostarp administratoru grupa un paši administratori, ir jādzēš.

Var rasties arī problēmas, konvertējot absolūtos ceļus no Windows uz Posix formātu un iesaistot sējumus, kas satur simboliskas saites. Bet tas ir cits stāsts.

Avots: www.habr.com

Pievieno komentāru