Docker və VMWare Workstation eyni Windows maşınında

Tapşırıq sadə idi, artıq zooparkı olan Windows ilə iş laptopuma Docker-i quraşdırın. Docker Desktop quraşdırdım, konteynerlər yaratdım, hər şey qaydasında idi, lakin tez bir zamanda aşkar etdim ki, VMWare Workstation xəta ilə virtual maşınları işə salmağı dayandırıb:

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

İş dayanıb, təcili düzəldilməlidir

Docker və VMWare Workstation eyni Windows maşınında

Google axtarışı zamanı məlum olub ki, bu xəta eyni maşında VMWare Workstation və Hyper-V-nin uyğunsuzluğu səbəbindən baş verir. Problem məlumdur və bunun kimi rəsmi VMWare həlli var düzeltmek, Microsoft bilik bazasına keçid ilə Windows Defender Credential Guard-ı idarə edin. Həll yolu Defender Credential Guard-ı söndürməkdir (Windows Defender Credential Guard-ı Disable bölməsinin 4-cü bəndi mənə kömək etdi):

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

Yenidən başladıqdan sonra Windows sizdən Defender Credential Guard-ı deaktiv edib-etməməyinizi soruşacaq. Bəli! Bu yolla VMWare Workstation normal işləməyə qayıdacaq və biz docker quraşdırmadan əvvəlki yerdə olacağıq.

Mən hələ də Hyper-V və VMWare Workstation-nı barışdırmaq üçün bir həll tapmamışam, ümid edirəm ki, onlar yeni versiyalarda dost olacaqlar.

Başqa bir yol

Mən uzun müddət müxtəlif məqsədlər üçün VMWare Workstation-a bağlı olmuşam, Hyper-V və VirtualBox-a keçməyə çalışmışam, lakin funksionallıq ehtiyaclarımı qane etmirdi və mən hələ də bu günə qədər orada qalmışam. Məlum oldu ki, VMWare, Docker və VSCode-u bir iş mühitində necə birləşdirməyə dair bir həll var.

Docker Maşın — Docker Engine-i virtual hostda işə salmağa və ona həm uzaqdan, həm də yerli olaraq qoşulmağa imkan verir. Və bunun üçün bir VMWare Workstation uyğunluğu sürücüsü var, github-a keçid

Quraşdırma təlimatlarını xüsusilə təkrarlamayacağam, sadəcə inqrediyentlərin siyahısı:

  1. Docker Toolbox (Docker Maşın daxil)
  2. Docker Machine VMware Workstation Driver
  3. Docker Masaüstü

Bəli, təəssüf ki, Docker Desktop da lazım olacaq. Əgər onu sökmüsünüzsə, onu yenidən quraşdırın, lakin bu dəfə VMWare Workstation-nı yenidən pozmamaq üçün ƏS-də dəyişiklik etmək haqqında qeyd qutusunu çıxarın.

Dərhal qeyd etmək istərdim ki, sadə bir istifadəçidən hər şey yaxşı işləyir, quraşdırma proqramları lazım olduqda hüquqların artırılmasını xahiş edəcək, lakin komanda xəttindəki bütün əmrlər və skriptlər cari istifadəçidən icra olunur.

Nəticədə, əmr:

$ docker-machine create --driver=vmwareworkstation dev

Boot2Docker-dən dev virtual maşın yaradılacaq, onun daxilində Docker quraşdırılacaq.

Bu virtual maşın müvafiq vmx faylını açmaqla VMWare Workstation qrafik interfeysinə qoşula bilər. Lakin bu lazım deyil, çünki VSCode indi PowerShell tərəfindən skript kimi işə salınmalı olacaq (nədənsə docker-machine və docker-machine-driver-vmwareworkstation bin qovluğunda sona çatdı):

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

VSCode yerli maşındakı kodla və virtual maşında Docker ilə işləmək üçün açılacaq. Plugin Visual Studio Kodu üçün Docker konsola girmədən virtual maşında konteynerləri rahat idarə etməyə imkan verir.

Çətinliklər:

Docker-machin yaradılması zamanı prosesim dondu:

Waiting for SSH to be available...

Docker və VMWare Workstation eyni Windows maşınında

Və bir müddət sonra virtual maşınla əlaqə yaratmaq üçün daha çox cəhdlə başa çatdı.

Bütün bunlar sertifikat siyasətinə aiddir. Virtual maşın yaratarkən ~.dockermachinemachinesdev kataloqunuz olacaq.Bu kataloqda SSH vasitəsilə qoşulmaq üçün sertifikat faylları olacaq: id_rsa, id_rsa.pub. OpenSSH, icazələrlə bağlı problemləri olduğunu düşündüyü üçün onlardan istifadə etməkdən imtina edə bilər. Yalnız docker-machine sizə bu barədə heç nə deməyəcək, sadəcə cansıxıcı olana qədər yenidən qoşulacaq.

həll: Yeni virtual maşının yaradılması başlayan kimi ~.dockermachinemachinesdev qovluğuna keçin və göstərilən faylların hüquqlarını bir-bir dəyişdirin.

Faylın sahibi cari istifadəçi olmalıdır, yalnız cari istifadəçi və SİSTEM tam girişə malikdir, bütün digər istifadəçilər, o cümlədən idarəçilər qrupu və idarəçilərin özləri silinməlidir.

Mütləq yolların Windows formatından Posix-ə çevrilməsi və simvolik keçidi ehtiva edən həcmlərin bağlanması ilə bağlı problemlər də ola bilər. Amma bu başqa hekayədir.

Mənbə: www.habr.com

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