Bagaimana cara menggunakan Vagrant dan Docker-untuk-Windows pada sistem Hyper-V?

12

Kembali pada hari itu, saya menggunakan VirtualBox (VB) dan Vagrant (V) untuk menjalankan VM. Karena saya menginstal docker-for-windows (DfW) dan menjalankan V, VB mengeluhkan Hyper-V (HV) .

[user@localhost ~]$ vagrant up
Stderr: VBoxManage.exe: error: VT-x is not available (VERR_VMX_NO_VMX)
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component
ConsoleWrap, interface IConsole

Meskipun tautan ini menunjukkan bahwa V mendukung HV, pesan kesalahan di atas kontradiktif. Mengapa VB terlihat tidak kompatibel dengan HV, mengapa V mengatakan bahwa ia mendukung HV dan bagaimana mencegahnya agar HV perlu dinonaktifkan agar dapat menggunakan V lagi.

| Product    | Version |
|:-----------|--------:|
| Vagrant    |   2.0.1 |
| VirtualBox |   5.2.4 |
| Windows    |      10 | 

Diskusi

Saran untuk menghidupkan dan mematikan Hyper-V bukanlah solusi yang disukai karena memakan waktu.

Jika dimungkinkan untuk menjalankan V dan DfW pada sistem yang sama dengan mengganti VB, ini bisa menjadi pilihan.

030
sumber

Jawaban:

9

Dikonfirmasi oleh jawaban ini pada SO yang mereferensikan Microsoft setelah Hyper-V diaktifkan, sembunyikan instruksi VT-X prosesor ke OS di atasnya dan windows berjalan seperti tamu.

Docker untuk Windows membutuhkan hiper-V untuk bekerja, jadi menonaktifkannya sebenarnya bukan pilihan.

Tidak ada cara untuk menjalankan kotak virtual di atas Hyper-V dan itu cukup normal, Anda tidak harus menjalankan hypervisor dalam hypervisor, mereka akan berjuang untuk mengatur akses perangkat keras.

Solusi terbaik menurut saya adalah membuat mesin virtual hiper-V dari gelandangan dengan penyedia hiper-V alih-alih mesin kotak virtual, dengan cara ini Anda bisa membuat VM atau wadah pada sesi yang sama.

Catatan samping, gelandangan sudah memiliki catatan tentang ini di halaman dokumentasi penyedia hiper-v (ditemukan saat mencari tautan untuk ditambahkan di atas):

Peringatan : Mengaktifkan Hyper-V akan menyebabkan VirtualBox, VMware, dan teknologi virtualisasi lainnya tidak berfungsi lagi. Lihat posting blog ini untuk cara mudah membuat entri boot untuk mem-boot Windows tanpa Hyper-V diaktifkan, jika ada saatnya Anda akan memerlukan hypervisor lainnya.

Tensibai
sumber
0

Di samping Vagrant, Anda bisa menggunakan Legacy 'Docker Toolbox' sekolah lama alih-alih 'Docker untuk Windows'. Itu berarti Docker akan lambat sejak berjalan di Linux VM saya percaya. https://docs.docker.com/toolbox/toolbox_install_windows/ Selain itu, ya saya telah me-restart semua komputer saya yang saya butuhkan HyperV untuk Docker atau menghapusnya ketika saya ingin gelandangan.

tombol tentara
sumber