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サイトでも見つかりません。
ご協力いただきありがとうございます!
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 を参照してください。