Làm cách nào để sử dụng Vagrant và Docker-for-Windows trên hệ thống Hyper-V?


12

Trước đây, tôi đã sử dụng VirtualBox (VB)Vagrant (V) để chạy VM. Vì tôi đã cài đặt docker-for-windows (DfW) và chạy V, VB phàn nàn về 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

Mặc dù liên kết này chỉ ra rằng V hỗ trợ HV, thông báo lỗi ở trên là mâu thuẫn. Tại sao VB trông không tương thích với HV, tại sao V nói rằng nó hỗ trợ HV và làm thế nào để ngăn chặn HV cần phải bị vô hiệu hóa để sử dụng lại V.

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

Thảo luận

Đề xuất bật và tắt Hyper-V không phải là giải pháp ưa thích vì nó tốn thời gian.

Nếu có thể chạy V và DfW trên cùng một hệ thống bằng cách thay thế VB thì đây có thể là một tùy chọn.

Câu trả lời:


9

Được xác nhận bởi câu trả lời này trên SO tham chiếu Microsoft Technet sau khi Hyper-V được kích hoạt, nó che dấu các hướng dẫn VT-X của bộ xử lý với HĐH trên nó và các cửa sổ chạy như một vị khách.

Docker cho Windows cần hyper-V để hoạt động, vì vậy vô hiệu hóa nó không thực sự là một lựa chọn.

Không có cách nào để có hộp ảo chạy trên Hyper-V và điều đó khá bình thường, bạn không nên chạy một trình ảo hóa trong một trình ảo hóa, họ sẽ chiến đấu để phối hợp các phần cứng.

Cách giải quyết tốt nhất theo ý kiến ​​của tôi là tạo máy ảo hyper-V từ nhà cung cấp hyper-V thay vì máy ảo, bằng cách này bạn có thể tạo VM hoặc container trên cùng một phiên.

Lưu ý bên lề, vagrant đã có ghi chú về điều này trong trang tài liệu của nhà cung cấp hyper-v (được tìm thấy trong khi tìm kiếm liên kết để thêm ở trên):

Cảnh báo : Kích hoạt Hyper-V sẽ khiến VirtualBox, VMware và bất kỳ công nghệ ảo hóa nào khác không còn hoạt động. Xem bài đăng trên blog này để biết cách dễ dàng để tạo một mục khởi động để khởi động Windows mà không cần bật Hyper-V, nếu có lúc bạn sẽ cần các trình ảo hóa khác.


0

Bên cạnh Vagrant, bạn có thể sử dụng 'Hộp công cụ Docker' cũ thay vì 'Docker cho Windows'. Điều đó có nghĩa là Docker sẽ chậm vì nó chạy trong máy ảo Linux. https://docs.docker.com/toolbox/toolbox_install_windows/ Ngoài ra, vâng, tôi đã khởi động lại máy tính của mình mọi thứ tôi cần HyperV cho Docker hoặc xóa nó khi tôi muốn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.