| .github | ||
| build.sh | ||
| disk.sh | ||
| docker-compose.yml | ||
| Dockerfile | ||
| install.sh | ||
| network.sh | ||
| power.sh | ||
| readme.md | ||
| run.sh | ||
docker-qemu
A docker container of QEMU
Features
- KVM acceleration
- Graceful shutdown
Usage
Via docker-compose.yml
version: "3"
services:
vm:
container_name: dsm
image: kroese/docker-qemu:latest
environment:
DISK_SIZE: "16G"
BOOT: "https://releases.ubuntu.com/22.04.2/ubuntu-22.04.2-live-server-amd64.iso"
devices:
- /dev/kvm
cap_add:
- NET_ADMIN
ports:
- 22:22
restart: on-failure
Via docker run
docker run -it -e "BOOT=https://releases.ubuntu.com/22.04.2/ubuntu-22.04.2-live-server-amd64.iso" --device=/dev/kvm --cap-add NET_ADMIN kroese/docker-qemu:latest
FAQ
-
How do I change the size of the virtual disk?
By default it is 16GB, but you can modify the
DISK_SIZEsetting in your compose file:environment: DISK_SIZE: "16G"To create an empty disk with a maximum capacity of 8 terabyte you would use a value of
"8T"for example. -
How do I change the location of the virtual disk?
By default it resides inside a docker volume, but you can add these lines to your compose file:
volumes: - /home/user/data:/storageJust replace
/home/user/datawith the path to the folder you want to use for storage. -
How do I change the amount of CPU/RAM?
By default an amount of 512MB RAM and 1 vCPU is allocated to the container.
To increase this you can add the following environment variabeles:
environment: CPU_CORES: "4" RAM_SIZE: "2048M" -
How do I give the container a dedicated IP address?
By default the container uses bridge networking, and is reachable by the IP of the docker host.
If you want to give it a seperate IP address, create a macvlan network that matches your local subnet:
$ docker network create -d macvlan \ --subnet=192.168.0.0/24 \ --gateway=192.168.0.1 \ --ip-range=192.168.0.100/28 \ -o parent=eth0 vlanAnd change the network of the container to
vlanin your run command:--network vlan --ip=192.168.0.100This has the advantage that you don't need to do any portmapping anymore.