web-dev-qa-db-ja.com

UbuntuDockerコンテナのVirtualboxにカーネルヘッダーがありません

Vagrantを使用するためにDockerでvirtualboxを実行しようとしています。私はUbuntuでそれを達成しようとしています。これは私のDockerfileです:

FROM ubuntu

RUN apt-get update
RUN apt-get install -y software-properties-common python-software-properties
RUN add-apt-repository 'deb http://download.virtualbox.org/virtualbox/debian trusty contrib'
RUN add-apt-repository 'deb http://de.archive.ubuntu.com/ubuntu trusty main restricted universe multiverse'
RUN apt-get update
RUN apt-get install -y wget linux-headers-generic
RUN wget http://download.virtualbox.org/virtualbox/debian/Oracle_vbox.asc -O- | Sudo apt-key add -

RUN apt-get update
RUN apt-get install -y gcc virtualbox dkms virtualbox-dkms
RUN wget https://dl.bintray.com/mitchellh/vagrant/vagrant_1.7.1_x86_64.deb
RUN dpkg -i vagrant_1.7.1_x86_64.deb

次にvirtualboxを実行すると、次のようになります。

WARNING: The character device /dev/vboxdrv does not exist.
         Please install the virtualbox-dkms package and the appropriate
         headers, most likely linux-headers-.

         You will not be able to start VMs until this problem is fixed.
Failed to open the X11 display!

ご覧のとおり、私はすでにapt-get install linux-headers-genericを使用してヘッダーをインストールしようとしています。しかし、unameでインストールしようとすると:apt-get install linux-headers -uname -rが機能しません:

Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package linux-headers-3.16.7-tinycore64
E: Couldn't find any package by regex 'linux-headers-3.16.7-tinycore64'

Linux-headers-3.16.7-tinycore64がどこにも見つかりません。グーグルで検索したなど、LinuxのtinycoreWebサイトでも見つかりません。

ご協力いただきありがとうございます!

4
vardump

Dockerイメージではなく、ホストシステムにカーネルモジュールが必要です。

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

次に、カーネルモジュールがロードされているかどうかをテストします。

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

次に、/ dev/vboxdrvをマウントすることで、Dockerコンテナーを実行できるようになります。

docker run -it -v /dev/vboxdrv:/dev/vboxdrv image-name

例については、Docker Hubの VirtualBox Inside Docker を参照してください。

3
Peter M