web-dev-qa-db-fra.com

Comment lancer qemu-kvm depuis l'intérieur d'un conteneur Docker?

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.

3
int 2Eh

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.

0
crashtua