3.1. Using Pre-Built Docker Images#
We provide pre-built Docker images on Docker Hub. These images provide a ready-to-use environment without building it yourself, containing all necessary dependencies to build custom disk images, compile adapters, or execute specialized workloads like self-hosted runners.
To start an interactive shell in a new ephemeral container (which will be deleted after the shell exits), use the following command:
docker run --rm -it --device /dev/kvm --privileged simbricks/simbricks-local /bin/bash
Performance & Requirements:
If your host system or runner node has Linux KVM support enabled, we highly
recommend passing /dev/kvm into the container. This drastically speeds up
some of the simulators. It is even required for certain simulators like gem5.
Furthermore, if your workload involves gem5, the container must be started with
the --privileged flag since it must access the perf_event_open syscall.
In addition, you must also set /proc/sys/kernel/perf_event_paranoid to 1
or lower on the host machine. You can set this temporarily by running the
following command:
sudo sysctl -w kernel.perf_event_paranoid=1
Image Format Conversion:
Certain host simulators, e.g. gem5 or Simics, require raw disk images. Because
Docker does not efficiently handle large, sparse files that lead to huge Docker
image sizes, we ship our images in qcow format to minimize image size. If
your workflow requires raw images, you can convert them by running the following
command inside the container:
make convert-images-raw