Running mød with docker
The docker image for the course is provided as a tar file here:
Important facts:
- Download size: approximately
2.4 GB. - After loading, the docker image occupies approximately
8.2 GB. - Docker image tag after loading:
mod-intel-solvers:1.0.1.100-nogurobi.lic - The image contains
MØD 1.0.1.100. - It contains
CPLEX, Gurobi libraries/CLI, CBC-CLP, a modified LoLA, PostMØD, Graphviz built from source, thegraph-canoncommand line tool for GraphCanon JSON traces, RDKit, and convenience tools such asemacs,screen,tmux, andpip. - It does not contain a Gurobi license file, hence the suffix
nogurobi.lic. CPLEXis the default ILP solver inside the image.- Gurobi can still be used, but requires either suitable WLS environment variables or a mounted license file.
mød using docker
First, you should install docker on your personal machine (see here ). Make sure you can use docker, e.g. test with the command docker run hello-world.
You can then load the course image with:
docker load -i mod-intel-solvers-1.0.1.100-nogurobi.lic.tar
This has to be done only once.
After the image has been loaded, you can start a container like this:
docker run -it --rm \ --platform linux/amd64 \ --hostname docker \ -v "$(pwd):/workdir" \ -w /workdir \ mod-intel-solvers:1.0.1.100-nogurobi.lic
The option --platform linux/amd64 is important on Apple Silicon machines.
When you run MØD in the container, you are usually interested in the output generated in the summary directory, which is accessible from the host system in the directory where you started docker.
If you nevertheless want to force the solver explicitly, you may still set
MOD_ILP_SOLVER=CPLEX or use
config.ilp.solver="CPLEX" in a Python script, but this is not necessary because CPLEX is the default.
GraphCanon JSON traces
The image also contains graph-canon. For example, download stabilizer-example.dimacs, or create an equivalent DIMACS file inside the container, and generate a JSON trace for the GraphCanon visualizer with:
curl -L -o /tmp/stabilizer-example.dimacs \ https://ac2026.algochem.techfak.de/Material/Other/stabilizer-example.dimacs graph-canon \ --fno-aut-implicit \ --ftarget-cell f \ --ftree-traversal dfs \ -f /tmp/stabilizer-example.dimacs \ --json /tmp/stabilizer-example.json \ --tree-dot /tmp/stabilizer-example.dot
Note, that changes within the docker container are not persistent, but you can make persistent changes by committing changes to the container. See any docker introductory material in case you have the need for that.