Arc-V DSM Container
Go to file
2022-01-06 22:27:39 -08:00
.github/workflows Add github actions build 2022-01-06 22:20:44 -08:00
Dockerfile Update debian version 2022-01-06 22:27:39 -08:00
generate-dhcpd-conf Use static IP address for dhcpd 2019-03-11 23:41:58 -07:00
qemu-ifdown Fully working implementation 2019-03-11 00:35:19 -07:00
qemu-ifup Fully working implementation 2019-03-11 00:35:19 -07:00
readme.md Add Travis-CI swag 2019-03-17 14:44:21 -07:00
run.sh Minor fixes + support hostname 2019-03-11 22:32:16 -07:00

qemu-docker

Build Status

This repository contains a Docker container for running x86_64 virtual machines using QEMU. It uses high-performance QEMU options (KVM, and TAP network driver).

Docker Hub: jkz0/qemu

Using the container

Via docker run:

$ docker run --rm -it \
    --device=/dev/kvm:/dev/kvm --device=/dev/net/tun:/dev/net/tun \
    --cap-add NET_ADMIN -v $VM_IMAGE_FILE:/image \
    jkz0/qemu:latest

Via docker-compose.yml:

version: "3"
services:
    vm:
        image: jkz0/qemu:latest
        cap_add:
            - NET_ADMIN
        devices:
            - /dev/net/tun
            - /dev/kvm
        volumes:
            - ${VM_IMAGE:?VM image must be supplied}:/image
        restart: always

Tips

  • VM networking is configured via DHCP, make sure to enable DHCP in your VM image. VMs will use the IP address of the container.
  • You can quit the VM (when attached to the container) by entering the special key sequence C-a x. Killing the docker container will also shut down the VM.

Caveat Emptor

  • Only x86_64 supported new. PRs to support other architectures welcome, though I imagine 99% of use-cases will be x86_64.
  • VMs will not be able to resolve container-names on user-defined bridges. This is due to the way Docker's "Embedded DNS" server works. VMs can still connect to other containers on the same bridge using IP addresses.