Docker dan VMWare Workstation pada mesin Windows yang sama

Tugasnya sederhana, letakkan Docker di laptop Anda yang bekerja dengan Windows, yang sudah memiliki kebun binatang. Disampaikan Docker Desktop membuat wadah, semuanya OK, tapi saya segera menemukan bahwa VMWare Workstation berhenti meluncurkan mesin virtual dengan kesalahan:

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


Pekerjaan bangun, kebutuhan mendesak harus diperbaiki




Menggunakan Google, ditemukan bahwa kesalahan ini terjadi karena ketidakcocokan VMWare Workstation dan Hyper-V pada mesin yang sama. Masalahnya diketahui dan ada solusi VMWare resmi tentang cara memperbaikinya , dengan merujuk ke basis pengetahuan Microsoft Manage Windows Defender Credential Guard . Solusinya adalah dengan menonaktifkan Penjaga Kredensial Defender (paragraf 4 dari bagian Nonaktifkan Penjaga Kredensial Defender Windows membantu saya):

mountvol X: /s
copy %WINDIR%\System32\SecConfig.efi X:\EFI\Microsoft\Boot\SecConfig.efi /Y
bcdedit /create {0cb3b571-2f2e-4343-a879-d86a476d7215} /d "DebugTool" /application osloader
bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} path "\EFI\Microsoft\Boot\SecConfig.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 Defender Credential Guard benar-benar dinonaktifkan. Iya! Dengan demikian, VMWare Workstation akan kembali ke operasi normal, dan kami akan berada di tempat yang sama seperti sebelum menginstal buruh pelabuhan.

Saya tidak pernah menemukan solusi untuk mendamaikan Hyper-V dan VMWare Workstation, saya berharap mereka akan berteman dalam versi baru.

Cara lain


Saya sudah lama terpikat pada VMWare Workstation untuk berbagai keperluan, mencoba untuk turun di Hyper-V dan VirtualBox, tetapi fungsionalitasnya tidak memuaskan tugas-tugas saya, jadi saya masih duduk. Ternyata ada solusi untuk bagaimana menyatukan VMWare, Docker dan VSCode dalam satu lingkungan kerja.

Docker Machine - memungkinkan Anda untuk menjalankan Docker Engine pada virtual host dan menghubungkannya baik secara lokal maupun jarak jauh. Dan baginya ada driver kompatibilitas dengan VMWare Workstation, tautan ke GitHub

saya tidak akan secara khusus menceritakan kembali instruksi instalasi, hanya daftar bahan:

  1. Docker Toolbox ( Termasuk Mesin Docker )
  2. Mesin Docker Driver Workstation VMware
  3. Desktop Docker

Ya, Docker Desktop, sayangnya, juga dibutuhkan. Jika Anda menghancurkannya, maka instal kembali, tetapi kali ini menghapus kotak centang tentang membuat perubahan pada OS agar tidak merusak VMWare Workstation lagi.

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

Hasilnya, tim:
$ docker-machine create --driver=vmwareworkstation dev

dari Boot2Docker dev virtual akan dibuat di dalamnya yang akan ada Docker.

Anda dapat melampirkan mesin virtual ini ke antarmuka grafis VMWare Workstation dengan membuka file vmx yang sesuai. Tetapi ini tidak perlu, karena VSCode sekarang perlu dijalankan oleh PowerShell dengan sebuah skrip (untuk beberapa alasan, buruh pelabuhan-mesin dan buruh pelabuhan-mesin-driver-vmwareworkstation ternyata berada di folder bin):

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

VSCode terbuka untuk bekerja dengan kode pada mesin lokal dan buruh pelabuhan di mesin virtual. Plugin Docker untuk Visual Studio Code memungkinkan Anda mengelola wadah dengan mudah di mesin virtual tanpa naik ke konsol.

Kesulitan:

Dalam proses pembuatan mesin buruh pelabuhan, proses saya membeku:

Waiting for SSH to be available...



Dan setelah beberapa waktu itu berakhir dengan upaya melebihi untuk membuat koneksi dengan mesin virtual.

Ini semua tentang politik sertifikat. Saat membuat mesin virtual, Anda akan melihat direktori ~ \ .docker \ machine \ machines \ dev dalam direktori ini akan ada file sertifikat untuk terhubung melalui SSH: id_rsa, id_rsa.pub. OpenSSH dapat menolak untuk menggunakannya karena percaya bahwa mereka memiliki masalah hak akses. Hanya di sini mesin docker tidak akan memberi tahu Anda tentang hal ini, tetapi hanya akan menyambung kembali sampai bosan.

Solusi: Segera setelah pembuatan mesin virtual baru dimulai, buka direktori ~ \ .docker \ machine \ machines \ dev dan ubah hak atas file yang ditentukan, satu per satu.

Pemilik file harus menjadi pengguna saat ini, akses penuh hanya ke pengguna saat ini dan SISTEM, semua pengguna lain, termasuk grup administrator dan administrator itu sendiri, harus dihapus.

Mungkin juga ada masalah dengan mengubah jalur absolut dari format Windows ke Posix, dan dengan volume yang mengikat yang berisi tautan simbolik. Tapi itu cerita lain.

All Articles