Câu hỏi là nó có thể chạy virtualbox bên trong một container docker


Tôi đã thử chạy container trong chế độ đặc quyền, nhưng vẫn không thể tải vboxdrv.

tôi có

WARNING: The vboxdrv kernel module is not loaded. Either there is no module
     available for the current kernel (3.11.0-22-generic) or it failed to
     load. Please recompile the kernel module and install it by

       sudo /etc/init.d/vboxdrv setup

     You will not be able to start VMs until this problem is fixed.

20
2017-09-09 10:06


gốc


Bạn đã cài đặt mô-đun hạt nhân trên hệ thống máy chủ của bạn chưa? - Regan
Tôi đã làm. Vẫn là lỗi tương tự. - babbata
Bạn có thể cung cấp cho chúng tôi thêm thông tin về: hệ thống của bạn, phiên bản trình docker của bạn, cách bạn khởi chạy vbox vào vùng chứa không? - Regan


Các câu trả lời:


Có, bạn có thể. Bạn sẽ cần phải chắc chắn rằng bạn có module hạt nhân trên hệ thống máy chủ của bạn. Tôi đang chạy Ubuntu, nhưng tôi chắc chắn nó sẽ tương tự trên các bản phân phối khác:

sudo apt-get install linux-headers-generic virtualbox-dkms

Và đảm bảo mô-đun hạt nhân được tải:

sudo /etc/init.d/virtualbox status
VirtualBox kernel modules are loaded.

Bây giờ, hãy chạy vùng chứa docker và mount / dev / vboxdrv như một ổ đĩa:

docker run -it -v /dev/vboxdrv:/dev/vboxdrv your/container-image

12
2017-11-13 19:01



bạn có chắc đây là -v thay vì --device (thiết bị)? tôi có Failed to open "/dev/vboxdrvu", errno=1, rc=VERR_VM_DRIVER_NOT_ACCESSIBLE. Ngoài ra, dưới chế độ đặc quyền, hộp Windows của tôi chỉ sử dụng CPU 100% và không bao giờ làm bất cứ điều gì, nhưng tôi nghĩ đó là một vấn đề khác. - fommil
@ Dana Tôi có một vấn đề khác, có thể bạn có thể giúp tôi. stackoverflow.com/questions/38620060/… - Eddy Hernandez


Đã chỉnh sửa tại 2016-03-27 12:54 UTC

Tôi có chính xác cùng một vấn đề và tôi có thể thành công dockerize phiên bản mới nhất của VirtualBox với Extension Pack và phpvirtualbox trên CentOS 7.

Bạn phải cài đặt tấn phụ thuộc như kernel-devel, make, gcc và dkms. Sau khi hoàn thành việc xây dựng docker, bạn PHẢI chạy hình ảnh docker với những lá cờ này --privileged=true -v /dev/:/dev/. bạn cần cờ --privileged=true để chạy hình ảnh với phiên bản docker của 1.10.3

Để biết chi tiết, vui lòng xem Dockerfile và run.sh

Để biết chi tiết, vui lòng xem kho lưu trữ của tôi đặc biệt Makefile, virtualbox.Dockerfile, vboxwebsrv.Dockerfile và phpvirtualbox.Dockerfile


12
2018-01-02 04:37



bạn có cần -v nếu bạn chỉ định --privileged=true? Tôi nghĩ nó đã được ngụ ý. - fommil
vâng, vẫn cần. nó sẽ có lỗi khi chạy /etc/init.d/vboxdrv setup bên trong thùng chứa.Starting VirtualBox kernel modules [FAILED] (Cannot create device /dev/vboxdrv with major 10 and minor 57u 58) - WooD
nó chắc chắn không cần thiết nữa với docker / virtualbox mới hơn. Thiết bị được truyền chính xác với --device - fommil
btw bạn hoàn toàn không nên chạy /etc/init.d/vboxdrv bên trong khách! Đó là để cài đặt mô-đun hạt nhân, đó là những gì máy chủ cần làm. - fommil
Cảm ơn fommil !! Đã đến lúc tôi dọn dẹp kịch bản - WooD