Docker Cluster
The Docker Cluster project provides a local, distributed environment for development and functional testing of the DynRes Software Stack. It creates a docker-swarm of containers connected via a common docker network.
Getting Started
The following steps are required to set up the Docker Cluster project on your system
Setting up Docker Swarm
Follow the Docker installation instructions for your Linux distribution. For example, Ubuntu: https://docs.docker.com/engine/install/ubuntu/
It is recommended to use your own regular user, and not root.
Add your user to the docker group:
`
usermod -aG docker $USER
`
Initialize the swarm cluster:
`
docker swarm init
`
Setting up Docker Cluster
Clone the Docker Cluster repository including its submodules:
`
git clone --recursive https://gitlab.inria.fr/dynres/dyn-procs/docker-cluster.git
`
Build the docker image:
`
./docker-build.sh [OPTIONS]
`
Note
If you just want to get started with development, running the command without options will mostly likely be sufficient. The resulting Docker image will be named docker-cluster:default-latest-e-i-v-l-develop
Options:
- ```
- –docker_file=[name]
The docker file to build. You can create your own Dockerfile by copying and adapting Dockerfile.default (default=Dockerfile.default)
- –image_version=[name]
Package versions to build. See export directory for available versions. (default=latest (pulls most recent package versions))
- –export_version=[name]
Name to assign to exported version If not None, this will record the version installed during the build and export them to export/[name].txt You can later use this file with the –image_version option (default=None)
- –mode=[develop/release]
When using develop mode, the build and install directories will be mounted into the docker containers at /opt/hpc/[build/install]. (default=develop)
- –env_install=[env_name]
Release Mode only: DynPkgs Environment to install (default=None)
- –env_load=[env_name]
Release Mode only: DynPkgs Environment to load (default=None)
- –env_version=[env_version]
Release Mode only: DynPkgs Environment version (default=None)
Using the Docker Cluster
Start, drop into and shutdown the cluster.
Starting the Docker Cluster
Starts N containers named n1, …, nN
`
./start.sh [OPTIONS]
`
Options:
Dropping into the Docker Cluster
Note
Use the DynPkgs package manager to manage the DynRes Software Stack inside of the Docker Cluster
Drop into a container of the running cluster:
`
./drop-in.sh [OPTIONS]
`
Options:
- ```
- –user=[username]
Drop in as user [user] (default=mpiuser)”
- –host=[hostname]
Drop into host [hostname] (default=n1)”
Note
mpiuser (default) is in the sudo group. It is usually not necessary/recommended to drop in as root
Installing Software
The Docker Cluster comes with a preinstalled instance of the DynPkgs package manager to install software packages of the DynRes software stack.
General software can installed using dnf install, pip3 install or manual installation.
Shutting down the Docker Cluster
Stop and remove all conatainers of the docker cluster. Note that only data in /opt/hpc/build and /opt/hpc/install will persist (when using develop mode).
`
./tmp/shutdown-cluster.sh
`