Docker va VMWare Workstation bir xil Windows mashinasida

Vazifa oddiy edi, Dockerni allaqachon hayvonot bog'i bo'lgan ishlaydigan Windows noutbukimga qo'ying. Men Docker Desktop-ni o'rnatdim va konteynerlar yaratdim, hammasi joyida, lekin VMWare Workstation xato bilan virtual mashinalarni ishga tushirishni to'xtatganini tezda bilib oldim:

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 Workstation bir xil Windows mashinasida

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 Windows Defender Credential Guard-ni boshqaring. Yechim - Defender Credential Guard-ni o'chirish (Windows Defender Credential Guard-ni o'chirish bo'limining 4-bandi menga yordam berdi):

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 siz haqiqatan ham Defender Credential Guard-ni o'chirishni xohlaysizmi, deb so'raydi. Ha! Shunday qilib, VMWare Workstation normal ishlashga qaytadi va biz o'zimizni dockerni o'rnatishdan oldingi joyda topamiz.

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 Workstation bir xil Windows mashinasida

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 Windows-dan Posix formatiga o'tkazish va ramziy havolani o'z ichiga olgan hajmlarni ulash bilan bog'liq muammolar ham bo'lishi mumkin. Lekin bu boshqa hikoya.

Manba: www.habr.com

a Izoh qo'shish