Running containers

Now days the containerisation of applications reached such conservative regarding the performance areas such HPC. We are trying to evaluate possible containers solutions such as

In order to benefit from easy deployment and setup of containerised application. For the moment the only option available are uDocker and Singularity where the users is able to run simple containers. The preliminary performance tests revealed that Singularity should be preferred option. The initial singularity configuration and basic usage example:

# Establish interactive session
srun --pty bash
# Load singularity module
module load singularity
# Run singularity command for first time
# this will create ~/.singularity folder where
# local cached images will be kept
singularity help
# Move ~/.singularity directory on ~/work parittion
mv ~/.singularity ~/work/
ln -s ~/work/.singularity ~/.singularity

# Run example Docker container mounting local folder
mkdir -p ~/work/test-folder
singularity shell -B $HOME/work/test-folder:/test-folder docker://centos

The initial udocker setup includes following steps

# Establish interactive session
srun --pty bash
# Load udocker module
module load udocker
# Run install command only first time
udocker install
# udocker will create hidden folder ~/.udocker/
# which need to be moved into your ~/work directory
# because of $HOME quota restrictions
# as an alternative you may create separate folder
# for you Docker images using command udocker mkrp ~/work/docker-repo
mv ~/.udocker/ ~/work/
ln -s ~/work/.udocker ~/.udocker
# Example usage. Creating test folder and running container
mkdir -p $HOME/work/test-udocker
udocker run -v $HOME/work/test-udocker:/test-udocker centos bash