假设主机系统已经支持KVM,是否可以创建一个docker镜像,其中包含一些用virsh和QEMU-KVM启动VM(在容器内)的脚本?
我们正在寻找dockerize脚本,它通过QEMU-KVM启动VM并从VM中提取一些结果。
答案 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