it-swarm.com.de

Wie starte ich qemu-kvm in einem Docker-Container?

Angenommen, das Host-System unterstützt bereits KVM. Ist es möglich, ein Docker-Image zu erstellen, das einige Skripts zum Starten eines VM (innerhalb des Containers) mit virsh und QEMU-KVM enthält?

Wir untersuchen das Andocken eines Skripts, das über QEMU-KVM ein VM startet und einige Ergebnisse aus der VM extrahiert.

3
int 2Eh

docker --priviledged

Einige Arbeitsbefehle von Ubuntu 17.10 Host, Docker 1.13.1:

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

Dann in 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 \
;

Root-Dateisystem und bzImage werden mit diesem Setup generiert.

Einfach. Sie müssen privilegierte Container ausführen, sicherstellen, dass sich der Knoten/dev/kvm im Container befindet, und alle Pakete installieren, um kvm bereitzustellen (libvirt, quemu, was auch immer) - das ist alles, was Sie benötigen. Siehe https://github.com/sivaramsk/docker-kvm als Referenz.

0
crashtua