Docker dan VMWare Workstation pada mesin Windows yang sama

Tugasnya sederhana, letakkan Docker di laptop Windows saya yang berfungsi, yang sudah memiliki kebun binatang. Saya menginstal Docker Desktop dan membuat wadah, semuanya baik-baik saja, tetapi saya segera menemukan bahwa VMWare Workstation berhenti menjalankan mesin virtual dengan kesalahan:

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

Pekerjaan telah berhenti, sangat mendesak untuk diperbaiki

Docker dan VMWare Workstation pada mesin Windows yang sama

Dengan googling, diketahui bahwa error ini terjadi karena ketidakcocokan VMWare Workstation dan Hyper-V di mesin yang sama. Masalahnya sudah diketahui dan ada solusi VMWare resmi seperti ini untuk memperbaikinya, dengan tautan ke Basis Pengetahuan Microsoft Kelola Penjaga Kredensial Windows Defender. Solusinya adalah menonaktifkan Defender Credential Guard (item 4 dari bagian Nonaktifkan Windows Defender Credential Guard membantu saya):

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

Setelah restart, Windows akan menanyakan apakah Anda benar-benar ingin menonaktifkan Defender Credential Guard. Ya! Dengan cara ini, VMWare Workstation akan kembali beroperasi normal, dan kita akan berada di tempat yang sama seperti sebelum menginstal buruh pelabuhan.

Saya belum menemukan solusi bagaimana mendamaikan Hyper-V dan VMWare Workstation, saya berharap mereka akan menjadi teman di versi baru.

Cara lain

Saya telah lama kecanduan VMWare Workstation untuk berbagai keperluan, saya mencoba untuk turun di Hyper-V dan VirtualBox, tetapi fungsinya tidak memenuhi tugas saya, jadi saya duduk sampai hari ini. Ternyata ada solusi bagaimana cara berteman VMWare, Docker dan VSCode dalam satu lingkungan kerja.

Mesin Docker - memungkinkan Anda untuk menjalankan Mesin Docker pada host virtual dan menghubungkannya dari jarak jauh dan lokal. Dan ada driver kompatibilitas VMWare Workstation untuk itu, tautan ke github

Saya tidak akan menceritakan kembali petunjuk pemasangannya terutama, hanya daftar bahannya saja:

  1. Kotak Alat Docker (Mesin Docker termasuk)
  2. Pengandar Workstation VMware Mesin Docker
  3. Desktop Docker

Ya, Docker Desktop, sayangnya, juga akan dibutuhkan. Jika Anda membongkarnya, pasang kembali, tetapi kali ini hapus kotak centang tentang membuat perubahan pada OS, agar tidak merusak VMWare Workstation lagi.

Saya ingin segera mencatat bahwa semuanya berfungsi dengan baik dari pengguna sederhana, program instalasi akan meminta eskalasi hak saat mereka membutuhkannya, tetapi semua perintah pada baris perintah dan skrip dijalankan dari pengguna saat ini.

Akibatnya, tim:

$ docker-machine create --driver=vmwareworkstation dev

dari Boot2Docker, dev virtualka akan dibuat di dalamnya yang akan menjadi Docker.

Mesin virtual ini dapat dilampirkan ke VMWare Workstation GUI dengan membuka file vmx yang sesuai. Tapi ini tidak perlu, karena VSCode sekarang perlu menjalankan skrip PowerShell (untuk beberapa alasan, docker-machine dan docker-machine-driver-vmwareworkstation saya berakhir di folder bin):

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

VSCode akan terbuka untuk bekerja dengan kode di mesin lokal dan buruh pelabuhan di mesin virtual. plugin Docker untuk Kode Visual Studio memungkinkan Anda mengelola wadah dengan mudah di mesin virtual tanpa masuk ke konsol.

Kesulitan:

Dalam proses membuat mesin buruh pelabuhan, prosesnya tergantung pada saya:

Waiting for SSH to be available...

Docker dan VMWare Workstation pada mesin Windows yang sama

Dan setelah beberapa saat berakhir dengan upaya berlebihan untuk membuat koneksi dengan mesin virtual.

Ini semua tentang kebijakan sertifikat. Saat membuat mesin virtual, Anda akan memiliki direktori ~.dockermachinemachinesdev di direktori ini akan ada file sertifikat untuk terhubung melalui SSH: id_rsa, id_rsa.pub. OpenSSH dapat menolak untuk menggunakannya karena dianggap memiliki masalah izin. Hanya docker-machine yang tidak akan memberi tahu Anda tentang hal ini, tetapi hanya akan menghubungkan kembali sampai bosan.

solusi: Segera setelah pembuatan mesin virtual baru dimulai, kami membuka direktori ~ .dockermachinemachinesdev dan mengubah hak atas file yang ditentukan, satu per satu.

File harus dimiliki oleh pengguna saat ini, hanya pengguna saat ini dan SISTEM yang memiliki akses penuh, semua pengguna lain, termasuk grup administrator dan administrator itu sendiri, harus dihapus.

Mungkin juga ada masalah saat mengonversi jalur absolut dari Windows ke format Posix, dan volume pengikatan yang berisi tautan simbolik. Tapi itu cerita lain.

Sumber: www.habr.com

Tambah komentar