Docker un VMWare Workstation uz viena Windows datora

Uzdevums bija vienkārÅ”s, uzstādÄ«t Docker savā darba klēpjdatorā ar Windows, kurā jau tāpat bija zoodārzs. UzstādÄ«ju Docker Desktop, izveidoju konteinerus, viss kārtÄ«bā, bet ātri pamanÄ«ju, ka VMWare Workstation vairs nespēj palaist virtuālās maŔīnas ar kļūdu:

VMware Workstation un Device/Credential Guard nav savietojami. VMware Workstation var palaist, pēc Device/Credential Guard atslēgÅ”anas.

Darbs apstājās, nepiecieŔams steidzami labot

Docker un VMWare Workstation uz viena Windows datora

Meklējot ar Google, noskaidroju, ka Ŕī kļūda rodas nesavietojamÄ«bas dēļ starp VMWare Workstation un Hyper-V vienā datorā. Problema ir zināma un ir oficiāls VMware risinājums, kā to salabot, ar atsauci uz Microsoft zināŔanu bāzi PārvaldÄ«t Windows Defender Credential Guard. Risinājums ir atslēgt Defender Credential Guard (man palÄ«dzēja 4. punkts sadaļā 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ēc Windows restartēŔanas, tā jautās, vai tieŔām vēlaties atslēgt Defender Credential Guard. Jā! Tādējādi VMWare Workstation atgriezÄ«sies normālā darbÄ«bā, un mēs nonāksim tajā paŔā vietā, kur bijām pirms Docker uzstādīŔanas.

Risinājumu, kā samierināt Hyper-V un VMWare Workstation, es tā arī neatradu, ceru, ka jaunajās versijās tās sadraudzēsies.

Cits ceļŔ

Es jau sen lietoju VMWare Workstation dažādiem mērķiem, mēģināju pāriet uz Hyper-V un VirtualBox, bet funkcionalitāte neapmierināja manas vajadzības, tāpēc joprojām turpinu to lietot. Izrādījās, ka ir risinājums, kā savienot VMWare, Docker un VSCode vienā darba vidē.

Docker Machine — ļauj palaist Docker Engine uz virtuālā hosta un piekļūt tam gan attālināti, gan lokāli. Un tam ir saderÄ«bas draiveris ar VMWare Workstation, saite uz GitHub

UzstādīŔanas instrukciju īpaŔi neizstāstīŔu, tikai sastāvdaļu saraksts:

  1. Docker Toolbox (Docker Machine iekļauts komplektā)
  2. Docker Machine VMware Workstation Driver
  3. Docker Desktop

Jā, Docker Desktop, diemžēl, arÄ« bÅ«s nepiecieÅ”ams. Ja to esat izdzēsuÅ”i, uzstādām no jauna, bet Å”oreiz noņemot atzÄ«mi par izmaiņu veikÅ”anu operētājsistēmā, lai atkārtoti nesabojātu VMWare Workstation.

Vispirms vēlos norādÄ«t, ka viss lieliski darbojas no parastā lietotāja puses, instalācijas programmas lÅ«gs tiesÄ«bu paaugstināŔanu, kad tas bÅ«s nepiecieÅ”ams, bet visas komandas komandu rindā un skripti tiek izpildÄ«ti no paÅ”reizējā lietotāja.

Rezultātā ar komandu:

$ docker-machine create --driver=vmwareworkstation dev

tiks izveidota virtuālā maŔīna dev Boot2Docker iekÅ”ienē, kurā bÅ«s Docker.

Å o virtuālo maŔīnu var pievienot grafiskajā interfeisā VMWare Workstation, atverot attiecÄ«go vmx failu. Tomēr tas nav obligāti, jo tagad VSCode bÅ«s jāsāk ar PowerShell skriptu (man kaut kā docker-machine un docker-machine-driver-vmwareworkstation izrādÄ«jās tieÅ”i bin mapē):

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

Atvērsies VSCode, lai strādātu ar kodu uz lokālās maŔīnas un Docker virtuālajā maŔīnā. PiesaistÄ«tais Docker for Visual Studio Code piedāvā ērti pārvaldÄ«t konteinerus virtuālajā maŔīnā, neiespiežoties konsolē.

Grūtības:

Izveidojot docker-machine, man process iestrēga:

Waiting for SSH to be available...

Docker un VMWare Workstation uz viena Windows datora

Un pēc kāda laika tas pabeidzās ar pārsniegtām savienojuma izveidoÅ”anas mēģinājumu reizēm ar virtuālo maŔīnu.

Visa lieta ir sertifikātu politikā. Izveidojot virtuālo maŔīnu, jums parādÄ«sies katalogs ~/.dockermachinemachinesdev, kurā bÅ«s sertifikātu faili SSH piekļuvei: id_rsa, id_rsa.pub. OpenSSH var atteikties tos izmantot, jo uzskata, ka tiem ir piekļuves tiesÄ«bu problēmas. Tikai docker-machine jums par to neko neteiks, bet vienkārÅ”i turpinās pārbaudÄ«t savienojumu, lÄ«dz tas apnÄ«k.

Risinājums: Kad sāksies jaunas virtuālās maŔīnas izveide, ieejiet katalogā ~/.dockermachinemachinesdev un mainiet tiesÄ«bas uz minētajiem failiem, pa vienam.

Faila Ä«paÅ”niekam jābÅ«t paÅ”reizējam lietotājam, pilnÄ«gām tiesÄ«bām tikai paÅ”reizējam lietotājam un SYSTEM, visiem pārējiem lietotājiem, ieskaitot administratoru grupu un paÅ”iem administratoriem, jāiznÄ«cina.

Tāpat var rasties problēmas ar absolÅ«to ceļu konvertēŔanu no Windows formāta uz Posix, un ar saiÅ”u apjomu piesaistīŔanu, kas satur simboliskās saites. Bet tas jau ir cits stāsts.

Avots: habr.com

Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem šŸ”„ Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem | ProHoster