2014-09-09 3 views
19

Я попытался запустить контейнер в привилегированном режиме, но все же vboxdrv не может быть загружен.Возможно ли запустить виртуальный бокс в контейнере докера?

я

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

Вы установили модуль ядра в свою хост-систему? – Regan

+0

сделал. По-прежнему такая же ошибка. – babbata

+0

Можете ли вы дать нам больше информации о вашей системе, вашей версии докеров, о том, как вы запускаете vbox в контейнер? – Regan

ответ

12

Да, вы можете. Вам нужно убедиться, что у вас есть модуль ядра на вашей хост-системе. Я бегу Ubuntu, но я уверен, что это будет похоже на других дистрибутивах:

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

И убедитесь, что модуль ядра загружен:

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

Теперь запустите контейнер Докер, и смонтировать/DEV/vboxdrv как объем:

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

вы уверены, что это '-v', а не' --device' (устройство)? Я получаю «Не удалось открыть»/dev/vboxdrvu », errno = 1, rc = VERR_VM_DRIVER_NOT_ACCESSIBLE'. Кроме того, в привилегированном режиме моя коробка Windows использует только 100% процессор и никогда ничего не делает, но я думаю, что это другая проблема. – fommil

+0

@Dana У меня другая проблема, может быть, вы можете мне помочь. http://stackoverflow.com/questions/38620060/docker-machine-error-to-create-default-machine –

12

редактироваться 2016-03-27 12:54 UTC

у меня есть точные S ame, и я могу успешно докровать последнюю версию VirtualBox с помощью пакета расширения и phpvirtualbox на CentOS 7.

Вам необходимо установить множество зависимостей, таких как kernel-devel, make, gcc и dkms. После завершения сборки докера, вы ДОЛЖНЫ запускать изображение докера с этими флагами --privileged=true -v /dev/:/dev/. вам нужен флаг --privileged=true запустить файл с версией Docker 1.10.3

Для получения подробной информации, пожалуйста, см мой Dockerfile и run.sh

Для получения подробной информации, пожалуйста, посмотрите my repository особенно Makefile, virtualbox.Dockerfile, vboxwebsrv.Dockerfile и phpvirtualbox.Dockerfile

+1

вам нужно '-v', если вы укажете' --privileged = true'? Я думал, что это подразумевается. – fommil

+1

Да, все еще нужно. он будет иметь ошибку при запуске '/etc/init.d/vboxdrv setup' внутри контейнера.« Запуск модулей ядра VirtualBox [FAILED] (Невозможно создать устройство/dev/vboxdrv с основными 10 и младшими 57u 58) ' – WooD

+0

это определенно не нужно больше с более поздним docker/virtualbox. Устройство передается правильно с '--device' – fommil

Смежные вопросы