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.

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.


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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.