En supposant que le système hôte prenne déjà en charge KVM, est-il possible de créer une image de menu fixe contenant des scripts pour lancer un VM (à l'intérieur du conteneur) avec virsh et QEMU-KVM?
Nous étudions la possibilité de dockerize un script qui lance une VM via QEMU-KVM et extrait certains résultats de la VM.
docker --priviledged
Quelques commandes de travail de Ubuntu 17.10 Host, Docker 1.13.1:
Sudo docker run --name ub16 -i --privileged -t ubuntu:16.04 bash
Puis à l'intérieur de 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 \
;
Système de fichiers racine et bzImage générés avec this setup .
Facile. Vous devez exécuter le conteneur privilégié, vous assurer que vous avez le nœud/dev/kvm dans le conteneur, installer tous les packages pour servir kvm (libvirt, quemu, etc.) - c'est tout ce dont vous avez besoin. Voir https://github.com/sivaramsk/docker-kvm pour référence.