如何从Docker容器内启动qemu-kvm?

时间:2018-01-24 12:01:10

标签: docker virtualization qemu kvm virsh

假设主机系统已经支持KVM,是否可以创建一个docker镜像,其中包含一些用virsh和QEMU-KVM启动VM(在容器内)的脚本?

我们正在寻找dockerize脚本,它通过QEMU-KVM启动VM并从VM中提取一些结果。

3 个答案:

答案 0 :(得分:6)

<强> docker --priviledged

来自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 \
;

使用this setup生成的根文件系统和bzImage。

答案 1 :(得分:0)

易。你需要运行特权容器,确保在容器中有/ dev / kvm节点,安装所有软件包以服务kvm(libvirt,quemu,其他任何东西) - 这就是你所需要的。请参阅https://github.com/sivaramsk/docker-kvm以供参考。

答案 2 :(得分:0)

Include Attachments

添加到上一个答案:使用--device=/dev/kvm可能会为您的用例打开太多权限。我已经能够使用kvm和qvm来运行qemu,而没有使用device参数的特权。

尝试以下命令:

--privileged

泊坞窗内部:

docker run --device=/dev/kvm -it ubuntu bash