web-dev-qa-db-fra.com

est-il possible d'exécuter virtualbox dans un conteneur docker

J'ai essayé d'exécuter le conteneur en mode privilégié, mais le vboxdrv ne peut toujours pas être chargé.

Je reçois

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.
24
babbata

Oui, vous pouvez. Vous devrez vous assurer que le module du noyau est installé sur votre système hôte. J'utilise Ubuntu, mais je suis sûr que ce serait similaire sur d'autres distributions:

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

Et assurez-vous que le module du noyau est chargé:

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

Maintenant, exécutez le conteneur Docker et montez/dev/vboxdrv en tant que volume:

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

Modifié à 2016-03-27 12:54 UTC

J'ai exactement le même problème et je peux docker avec succès la dernière version de VirtualBox avec le pack d'extension et phpvirtualbox sur CentOS 7.

Vous devez installer des tonnes de dépendances telles que kernel-devel, make, gcc et dkms. Après avoir terminé la construction du docker, vous DEVEZ exécuter l'image docker avec ces drapeaux --privileged=true -v /dev/:/dev/. vous avez besoin du drapeau --privileged=true pour exécuter l'image avec la version docker de 1.10.3

Pour plus de détails, consultez mes Dockerfile et run.sh

Pour les détails, veuillez consulter mon référentiel surtout Makefile , virtualbox.Dockerfile , vboxwebsrv.Dockerfile et phpvirtualbox.Dockerfile

11
WOW

2019:

  • Version de la boîte virtuelle: 6.0
  • Version Docker: 18.09.6
  • Ubuntu 18.04

La clé est d'utiliser une image docker sur laquelle systemd est en cours d'exécution. J'ai choisi jrei/systemd-ubuntu voir ici .

    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

À l'intérieur du conteneur, j'ai couru:

    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

Prendre plaisir :-)

3
langlauf.io