Docker va VMWare ish stantsiyasi bitta platformada Windows mashina

Vazifa oddiy edi, Dockerni ish noutbukimga o'rnating Windows, unda allaqachon hayvonot bog'i bor edi. Men Docker Desktopni o'rnatdim va konteynerlar yaratdim, hammasi yaxshi edi, lekin men tezda VMWare Workstation xato bilan virtual mashinalarni ishga tushirishni to'xtatganini aniqladim:

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

Ish to'xtadi, uni ta'mirlash kerak

Docker va VMWare ish stantsiyasi bitta platformada Windows mashina

Googling orqali ma'lum bo'lishicha, bu xato VMWare Workstation va Hyper-V ning bir xil mashinada mos kelmasligi tufayli yuzaga keladi. Muammo ma'lum va shunga o'xshash rasmiy VMWare yechimi mavjud tuzatish, Microsoft bilimlar bazasiga havola bilan boshqarish Windows Himoyachining ishonch yorlig'i qo'riqchisiYechim Defender Credential Guard’ni o‘chirib qo‘yishdir (menga O‘chirish bo‘limining 4-bandi yordam berdi). Windows Himoyachining ishonch yorlig'i qo'riqchisi):

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

Qayta ishga tushirilgandan so'ng Windows Sizdan Defender Credential Guard’ni chindan ham o‘chirib qo‘yishni xohlaysizmi, deb so‘raladi. Ha! Bu VMWare Workstation’ni normal ishlashga qaytaradi va biz Docker’ni o‘rnatishdan oldingi holatimizga qaytamiz.

Hyper-V va VMWare Workstation-ni qanday yarashtirish bo'yicha yechim topmadim, umid qilamanki, ular yangi versiyalarda do'st bo'lishadi.

Boshqa yo'l

Men uzoq vaqtdan beri turli maqsadlarda VMWare Workstation-ga qaram bo'lib qolganman, Hyper-V va VirtualBox-dan tushishga harakat qildim, lekin funksionallik mening vazifalarimni qoniqtirmadi va shu kungacha o'tiribman. Ma'lum bo'lishicha, bitta ish muhitida VMWare, Docker va VSCode bilan do'stlashishning yechimi bor.

Docker mashinasi - Docker Engine-ni virtual xostda ishga tushirish va unga masofadan va mahalliy ulanish imkonini beradi. Va buning uchun VMWare Workstation moslik drayveri mavjud, github ga havola

O'rnatish bo'yicha ko'rsatmalarni qayta aytmayman, faqat ingredientlar ro'yxati:

  1. Docker asboblar to'plami (Docker mashinasi Shu jumladan)
  2. Docker Machine VMware ish stantsiyasi drayveri
  3. Docker ish stoli

Ha, afsuski, Docker Desktop ham kerak bo'ladi. Agar siz uni buzib tashlagan bo'lsangiz, uni qayta o'rnating, lekin bu safar VMWare Workstation-ni qayta buzmaslik uchun OSga o'zgartirish kiritish katagini olib tashlang.

Darhol shuni ta'kidlashni istardimki, oddiy foydalanuvchidan hamma narsa yaxshi ishlaydi, o'rnatish dasturlari kerak bo'lganda huquqlarni oshirishni so'raydi, lekin buyruq satridagi barcha buyruqlar va skriptlar joriy foydalanuvchidan bajariladi.

Natijada jamoa:

$ docker-machine create --driver=vmwareworkstation dev

Boot2Docker-dan dev virtualka yaratiladi, uning ichida Docker bo'ladi.

Ushbu virtual mashina VMWare Workstation GUI-ga tegishli vmx faylini ochish orqali biriktirilishi mumkin. Ammo bu shart emas, chunki VSCode endi PowerShell skriptini ishga tushirishi kerak bo'ladi (ba'zi sabablarga ko'ra mening docker-machine va docker-machine-driver-vmwareworkstation bin papkasida tugadi):

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

VSCode mahalliy mashinadagi kod va virtual mashinadagi docker bilan ishlash uchun ochiladi. plagin Visual Studio kodi uchun Docker konsolga kirmasdan virtual mashinada konteynerlarni qulay boshqarish imkonini beradi.

Qiyinchiliklar:

Docker-mashinani yaratish jarayonida men uchun jarayon osilib turdi:

Waiting for SSH to be available...

Docker va VMWare ish stantsiyasi bitta platformada Windows mashina

Va bir muncha vaqt o'tgach, u virtual mashina bilan aloqa o'rnatishga urinishlarning ko'pligi bilan yakunlandi.

Hammasi sertifikat siyosati haqida. Virtual mashina yaratishda sizda ~.dockermachinemachinesdev katalogi bo'ladi, bu katalogda SSH orqali ulanish uchun sertifikat fayllari bo'ladi: id_rsa, id_rsa.pub. OpenSSH ulardan foydalanishni rad etishi mumkin, chunki ularda ruxsat berish bilan bog'liq muammolar bor deb o'ylaydi. Faqat docker-mashina sizga bu haqda hech narsa aytmaydi, lekin u zerikguncha qayta ulanadi.

yechim: Yangi virtual mashinani yaratish boshlanishi bilan biz ~ .dockermachinemachinesdev katalogiga o'tamiz va belgilangan fayllarga bo'lgan huquqlarni birma-bir o'zgartiramiz.

Fayl joriy foydalanuvchiga tegishli bo'lishi kerak, faqat joriy foydalanuvchi va SYSTEM to'liq kirish huquqiga ega, barcha boshqa foydalanuvchilar, shu jumladan administratorlar guruhi va administratorlarning o'zlari o'chirilishi kerak.

Mutlaq yo'llarni quyidagidan o'zgartirish bilan bog'liq muammolar ham bo'lishi mumkin Windows Posix formatida va ramziy havolalarni o'z ichiga olgan hajmli bog'lash bilan. Lekin bu boshqa hikoya.

Manba: www.habr.com

DDoS himoyasi, VPS VDS serverlari bo'lgan saytlar uchun ishonchli hosting sotib oling 🔥 DDoS himoyasi, VPS VDS serverlari bilan ishonchli veb-sayt xostingini sotib oling | ProHoster