Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

MACI Docker

This repository provides a set of instructions to create Docker containers to start a full working set of the MACI framework published on

The service is launched with Docker Compose initiating and connecting three Containers:

  • MACI_Backend running the management framework based on .Net
  • Jupyter-Notebook for analyzing experiments
  • Mininet-Worker to run experiments (multiple instances can be started, however, be aware of side effects when executing parallel network experiments on the same host)

Getting Started

Setup Docker

#run as root
apt-get update
apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    curl -fsSL | sudo apt-key add -
add-apt-repository \
"deb [arch=amd64] \
$(lsb_release -cs) \
apt-get update
apt-get install docker-ce
curl -L`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
service docker start
  • macOS

    Install Docker (e.g., following these instructions)

  • Windows

    Install Docker (e.g., following these instructions).

Load Submodules

The MACI framework is loaded as a git submodule and needs to be loaded before starting the container:

git submodule init
git submodule update --remote


  • Attached (logs visible) docker-compose up --build

  • Detached docker-compose up -d --build


  • Reset (CAUTION all local docker instances and volumes are removed)

    docker stop $(docker ps -aq)
    docker rm $(docker ps -aq)
    docker volume prune -f
  • How do I start up more workers

    Newer Docker-Compose releases support the flag --scale mininet=n to launch n workers.