2014-09-09 7 views
19

Ich habe versucht, den Container im privilegierten Modus ausgeführt, aber immer noch die Vboxdrv kann nicht geladen werden.ist es möglich, virtualbox innerhalb eines Dockers Container

ich

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. 
+0

Haben Sie das Kernel-Modul auf Ihrem Host-System installiert? – Regan

+0

tat ich. Immer noch der gleiche Fehler. – babbata

+0

Können Sie uns mehr Informationen geben über: Ihr System, Ihre Docker-Version, wie Sie vbox in einen Container laden? – Regan

Antwort

12

Ja, Sie können. Sie müssen sicherstellen, dass Sie das Kernel-Modul auf Ihrem Host-System haben. Ich bin mit Ubuntu, aber ich bin sicher, dass es auf anderen Distributionen ähnlich sein würde:

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

Und stellen Sie sicher, dass die Kernel-Modul geladen:

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

Nun führen Sie den Docker Behälter, und mount/dev/vboxdrv als Volumen:

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

Sind Sie sicher, dass das '-v' ist und nicht' --device' (Gerät)? Ich bekomme 'Fehler beim Öffnen"/dev/vboxdrvu ", errno = 1, rc = VERR_VM_DRIVER_NOT_ACCESSIBLE'. Auch im privilegierten Modus verwendet meine Windows-Box nur 100% CPU und tut nie etwas, aber ich denke, das ist ein anderes Problem. – fommil

+0

@Dana Ich habe ein anderes Problem, vielleicht können Sie mir helfen. http://stackoverflow.com/questions/38620060/docker-machine-error-to-create-default-machine –

12

Herausgegeben bei 2016-03-27 12:54 UTC

ich habe die genauen s Ein Problem, und ich kann die neueste Version von VirtualBox mit dem Extension Pack und phpvirtualbox auf CentOS 7 erfolgreich docken.

Sie müssen Tonnen von Abhängigkeiten wie kernel-devel, make, gcc und dkms installieren. Nach Abschluss des Docker Build, müssen Sie das Docker-Bild mit diesen Flags --privileged=true -v /dev/:/dev/ ausführen. Sie benötigen die Flagge --privileged=true das Bild mit der Docker Version 1.10.3

Für die Details zu laufen, bitte meine Dockerfile und run.sh

Für die Details sehen, haben Sie bitte einen Blick my repository besonders Makefile, virtualbox.Dockerfile, vboxwebsrv.Dockerfile und phpvirtualbox.Dockerfile

+1

benötigen Sie '-v', wenn Sie' --privileged = true' angeben? Ich dachte, es wäre impliziert. – fommil

+1

ja, noch brauchen. es wird ein Fehler beim Ausführen von '/etc/init.d/vboxdrv setup' im Container.'Starten von VirtualBox-Kernelmodulen [FAILED] (Kann Gerät/dev/vboxdrv mit Major 10 und Minor 57u 58)' – WooD

+0

nicht erstellen es wird definitiv nicht mehr mit neueren docker/virtualbox benötigt. Das Gerät wird korrekt mit '--device' übergeben. – fommil

Verwandte Themen