web-dev-qa-db-ja.com

Dockerコンテナー内からqemu-kvmを起動する方法は?

ホストシステムがすでにKVMをサポートしているとすると、virshとQEMU-KVMでVM(コンテナー内))を起動するスクリプトを含むDockerイメージを作成できますか?

QEMU-KVMを介してVM=を起動し、VMからいくつかの結果を抽出するスクリプトをdockerizeしています。

7
int 2Eh

docker --privileged

Ubuntu 17.10ホスト、Docker 1.13.1からのいくつかの動作するコマンド:

Sudo docker run --name ub16 -i --privileged -t ubuntu:16.04 bash

次に、Docker内で:

apt-get update -y
apt-get install qemu -y
qemu-system-x86_64
qemu-system-x86_64 \
  -append 'root=/dev/vda console=ttyS0' \
  -drive file='rootfs.ext2.qcow2,if=virtio,format=qcow2'  \
  -enable-kvm \
  -kernel 'bzImage' \
  -nographic \
;

ルートファイルシステムとbzImage this setup で生成されます。

簡単です。特権コンテナーを実行する必要があります。コンテナーに/ dev/kvmノードがあることを確認し、kvm(libvirt、quemuなど)を提供するためにすべてのパッケージをインストールしてください-これで十分です。参考として https://github.com/sivaramsk/docker-kvm を参照してください。

0
crashtua