我尝试以特权模式运行容器,但仍然无法加载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 :(得分:12)
是的,你可以。您需要确保在主机系统上安装内核模块。我正在运行Ubuntu,但我确定它在其他发行版上类似:
sudo apt-get install linux-headers-generic virtualbox-dkms
确保加载内核模块:
sudo /etc/init.d/virtualbox status
VirtualBox kernel modules are loaded.
现在,运行docker容器,并将/ dev / vboxdrv挂载为卷:
docker run -it -v /dev/vboxdrv:/dev/vboxdrv your/container-image
答案 1 :(得分:12)
编辑于2016-03-27 12:54 UTC
我有完全相同的问题,我可以使用CentOS 7上的Extension Pack和phpvirtualbox将最新版本的VirtualBox成功停靠。
您必须安装大量依赖项,例如kernel-devel,make,gcc和dkms。在完成docker build之后,你必须使用这些标志你需要标志--privileged=true -v /dev/:/dev/
运行docker镜像。--privileged=true
来运行带有docker版本1.10.3的图像< / p>
有关详细信息,请参阅我的 Dockerfile
和run.sh
有关详细信息,请查看my repository,尤其是Makefile
,virtualbox.Dockerfile
,vboxwebsrv.Dockerfile
和phpvirtualbox.Dockerfile
答案 2 :(得分:1)
2021 年:
检查 my git repository 以了解我如何使用基于 Ubuntu 20.04 的 VirtualBox 6.1。
只需运行:docker run -d --rm --network=host --device /dev/vboxdrv:/dev/vboxdrv -e DISPLAY=unix:0 garo/docker-virtualbox
即可。
不要忘记,正如其他回复中提到的,您的主机系统上需要有 virtualbox 内核模块。在主机上安装 VirtualBox 是最简单的方法。 (安装后可以立即再次删除)
答案 3 :(得分:0)
2019年:
关键是使用已运行systemd的docker映像。我选择了jrei/systemd-ubuntu
参见here。
docker run -d --privileged \
--name systemd-ubuntu --network=host \
--device /dev/vboxdrv:/dev/vboxdrv \
-v /sys/fs/cgroup:/sys/fs/cgroup:ro \
-v /tmp:/tmp -it jrei/systemd-ubuntu
在我运行的容器内:
apt update
apt -y install wget
apt -y install gnupg2
apt -y install systemd
apt -y install software-properties-common
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | apt-key add -
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | apt-key add -
add-apt-repository "deb https://download.virtualbox.org/virtualbox/debian bionic contrib"
apt update
apt -y install virtualbox-6.0
享受:-)