Возможно ли запустить виртуальный бокс внутри контейнера докеров
Я попробовал запустить контейнер в привилегированном режиме, но все же 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.
Ответы
Ответ 1
Да, вы можете. Вам нужно убедиться, что у вас есть модуль ядра на вашей хост-системе. Я запускаю Ubuntu, но я уверен, что он будет похож на другие дистрибутивы:
sudo apt-get install linux-headers-generic virtualbox-dkms
И убедитесь, что загружен модуль ядра:
sudo /etc/init.d/virtualbox status
VirtualBox kernel modules are loaded.
Теперь запустите контейнер докеров и установите mount/dev/vboxdrv в качестве тома:
docker run -it -v /dev/vboxdrv:/dev/vboxdrv your/container-image
Ответ 2
Отредактировано в 2016-03-27 12:54 UTC
У меня есть одна и та же проблема, и я могу успешно докровать последнюю версию VirtualBox с помощью пакета расширения и phpvirtualbox на CentOS 7.
Вам нужно установить множество зависимостей, таких как kernel-devel, make, gcc и dkms. После завершения сборки docker, , вы ДОЛЖНЫ запускать изображение докеров с помощью этих флагов --privileged=true -v /dev/:/dev/
. вам нужен флаг --privileged=true
для запуска изображения с версией докерера 1.10.3
Подробнее см. в разделе Dockerfile
и run.sh
забастовкa >
Для получения подробной информации, пожалуйста, посмотрите мой репозиторий, особенно Makefile
, virtualbox.Dockerfile
, vboxwebsrv.Dockerfile
и phpvirtualbox.Dockerfile