Aynı Windows makinesinde Docker ve VMWare İş İstasyonu

Görev basitti, Docker'ı zaten bir hayvanat bahçesi olan çalışan Windows dizüstü bilgisayarıma yerleştirin. Docker Desktop'ı kurdum ve kapsayıcılar oluşturdum, her şey yolunda, ancak VMWare Workstation'ın sanal makineleri çalıştırmayı bir hatayla durdurduğunu hemen keşfettim:

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

İş durdu, acilen tamir edilmesi gerekiyor

Aynı Windows makinesinde Docker ve VMWare İş İstasyonu

Google'da bu hatanın VMWare Workstation ile Hyper-V'nin aynı makine üzerindeki uyumsuzluğundan kaynaklandığı tespit edildi. Sorun biliniyor ve bunun gibi resmi bir VMWare çözümü var. düzeltmek, Microsoft Bilgi Bankası bağlantısı ile Windows Defender Kimlik Bilgisi Korumasını Yönetin. Çözüm, Defender Kimlik Bilgisi Korumasını devre dışı bırakmaktır (Windows Defender Kimlik Bilgisi Korumasını Devre Dışı Bırakma bölümünün 4. maddesi bana yardımcı oldu):

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

Yeniden başlattıktan sonra Windows, Defender Credential Guard'ı gerçekten devre dışı bırakmak isteyip istemediğinizi soracaktır. Evet! Bu sayede VMWare Workstation normal çalışmasına dönecek ve kendimizi docker kurmadan önceki yerimizde bulacağız.

Hyper-V ve VMWare Workstation'ı nasıl bağdaştıracağım konusunda bir çözüm bulamadım, umarım yeni sürümlerde arkadaş olurlar.

Diğer yol

Uzun zamandır çeşitli amaçlar için VMWare Workstation bağımlısıyım, Hyper-V ve VirtualBox'tan kurtulmaya çalıştım, ancak işlevsellik görevlerimi tatmin etmedi ve bu yüzden bugüne kadar oturdum. Tek bir çalışma ortamında VMWare, Docker ve VSCode ile arkadaş olmanın bir çözümü olduğu ortaya çıktı.

Docker Makinesi - Docker Engine'i sanal bir ana bilgisayarda çalıştırmanıza ve ona hem uzaktan hem de yerel olarak bağlanmanıza olanak tanır. Ve bunun için bir VMWare Workstation uyumluluk sürücüsü var, github'a bağlantı

Özellikle kurulum talimatlarını tekrar söylemeyeceğim, sadece içerik listesi:

  1. Docker Araç Kutusu (Docker Makinesi dahil)
  2. Docker Machine VMware İş İstasyonu Sürücüsü
  3. Docker Masaüstü

Evet, maalesef Docker Desktop'a da ihtiyaç duyulacak. Yıktıysanız, tekrar kurun, ancak bu sefer VMWare İş İstasyonunu tekrar bozmamak için işletim sisteminde değişiklik yapma ile ilgili onay kutusunu kaldırın.

Basit bir kullanıcıdan her şeyin yolunda gittiğini hemen belirtmek isterim, kurulum programları ihtiyaç duyduklarında hakların yükseltilmesini isteyecektir, ancak komut satırındaki ve komut dosyalarındaki tüm komutlar mevcut kullanıcıdan yürütülür.

Sonuç olarak, ekip:

$ docker-machine create --driver=vmwareworkstation dev

Boot2Docker'dan, içinde Docker olacak bir dev virtualka oluşturulacak.

Bu sanal makine, ilgili vmx dosyası açılarak VMWare İş İstasyonu GUI'sine eklenebilir. Ancak bu gerekli değildir, çünkü VSCode'un artık bir PowerShell betiği çalıştırması gerekecektir (nedense docker-machine ve docker-machine-driver-vmwareworkstation'ım bin klasöründe kaldı):

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

VSCode, yerel makinede kod ve sanal makinede docker ile çalışacak şekilde açılacaktır. Eklenti Visual Studio Code için Docker konsola girmeden kapsayıcıları bir sanal makinede kolayca yönetmenizi sağlar.

Zorluklar:

Liman işçisi makinesi oluşturma sürecinde süreç benim için askıda kaldı:

Waiting for SSH to be available...

Aynı Windows makinesinde Docker ve VMWare İş İstasyonu

Ve bir süre sonra, sanal makine ile bağlantı kurmak için yapılan aşırı girişimlerle sona erdi.

Her şey sertifika politikasıyla ilgili. Bir sanal makine oluştururken, bir ~.dockermachinemachinesdev dizinine sahip olacaksınız, bu dizinde SSH ile bağlanmak için sertifika dosyaları olacaktır: id_rsa, id_rsa.pub. OpenSSH, izin sorunları olduğunu düşündüğü için bunları kullanmayı reddedebilir. Yalnızca liman işçisi makinesi size bu konuda hiçbir şey söylemeyecek, ancak sıkılana kadar yeniden bağlanacaktır.

Çözüm: Yeni bir sanal makinenin oluşturulması başlar başlamaz ~ .dockermachinemachinesdev dizinine gidiyoruz ve belirtilen dosyaların haklarını teker teker değiştiriyoruz.

Dosyanın sahibi geçerli kullanıcıya ait olmalıdır, yalnızca geçerli kullanıcı ve SİSTEM tam erişime sahip olmalıdır, yöneticiler grubu ve yöneticilerin kendisi dahil olmak üzere diğer tüm kullanıcılar silinmelidir.

Mutlak yolları Windows'tan Posix biçimine dönüştürmede ve sembolik bağlar içeren ciltleme ciltlerinde de sorunlar olabilir. Ama bu başka bir hikaye.

Kaynak: habr.com

Yorum ekle